|
|
|
Supreme Being
      
участник
Last Login: 16.04.2008 11:44
Сообщ.: 366,
Visits: 2 473
|
|
В своем приложении я перехожу по ссылке с страницы 1.aspx на 2.aspx, имея в переменных сеанса параметр col_count=4.
Соответственно на странице 2.aspx должно появиться 4 контрола textbox последовательно. Значение параметра col_count переменная от 0 до 99.
С уважением,
|
|
|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
for (int i=0; i<col_count; i++) { TextBox tb = new TextBox(); ... Controls.Add(tb) }
|
|
|
|
|
Supreme Being
      
участник
Last Login: 16.04.2008 11:44
Сообщ.: 366,
Visits: 2 473
|
|
Переделал в модуле vb (а не в теле страницы)
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
Dim i As Int16
For i = 0 To Session.Item("col_count")
Dim tb As TextBox = New TextBox
Controls.Add(tb)
Next
End Sub
Выдает ошибку:
Exception Details: System.Web.HttpException: Control '_ctl0' of type 'TextBox' must be placed inside a form tag with runat=server.
P.S. естесственно такая переменная сеанса есть=4
|
|
|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
Ошибся немного. Их надо добавлять в коллекцию Controls серверной формы, а не самой страницы.<form id="form1" runat="server"> ... </form>Dim col_count As Integer, I As Integer col_count = CType(Session.Item("col_count"), Integer) For i = 0 To col_count Dim tb As TextBox = New TextBox .... form1.Controls.Add(tb) Next
|
|
|
|
|
Supreme Being
      
участник
Last Login: 16.04.2008 11:44
Сообщ.: 366,
Visits: 2 473
|
|
этот блок в 2.aspx?
<form id="form1" runat="server">
...
</form>
а этот в 2.aspx.vb в событие page_load?
Dim col_count As Integer, I As Integer
col_count = CType(Session.Item("col_count"), Integer)
For i = 0 To col_count
Dim tb As TextBox = New TextBox
....
form1.Controls.Add(tb)
Next
Тогда не работает, он form1 не "видит"
С уважением,
|
|
|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
| Объяви переменную form1 в классе формы, чтобы среда исполнения ASP.NET тебе ее инициализировала. Код надо написать внутри объявления класса, вне методов. Protected form1 As HtmlForm или динамически найди элемент управления по его id. Пишем код внутри page_load Dim form1 As HtmlForm form1 = CType(FindControl("form1"), HtmlForm)
|
|
|
|
|
Supreme Being
      
участник
Last Login: 16.04.2008 11:44
Сообщ.: 366,
Visits: 2 473
|
|
| Спасибо! Все получилось. Тема закрыта.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 16.04.2008 11:44
Сообщ.: 366,
Visits: 2 473
|
|
Думал, что закрыта. А как тогда на динамически сформированый контрол повесить обработчик события? например:
'создаем кнопку
Dim back_btn As Button = New Button
back_btn.Text = "Вернуться"
titles_frm.Controls.Add(back_btn)
'как обработать событие onClick для кнопки?
И как определить положение на форме, т. е. поместить на страницу где уже есть контролы в определенное место?
С уважением,
|
|
|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
| Посмотри код, который генерирует Visual Studio при добавлении новых элементов управления на страницу. Из него все понятно станет.
|
|
|
| | |