Динамически добавленный элемент управления не выполняет обратную передачу
-
08-07-2019 - |
Вопрос
Я переопределяю сетку, добавляя некоторые функции клиента. Одной из функций является раскрывающийся список для настройки размера страницы. Я расширяю сетку с помощью клиентского серверного элемента управления, который прекрасно работает для того, что я сделал до сих пор. Однако сейчас у меня возникли некоторые проблемы с получением динамически добавленного элемента управления для выполнения обратной передачи. JavaScript для инициации обратной передачи отсутствует.
Protected Overrides Sub OnPreRender(ByVal e As System.EventArgs)
Dim pageSizePanel As New Panel
...
Dim countList As List(Of String) = GetCountList()
Dim pageSizeDropdown As New DropDownList()
pageSizeDropdown.ID = "pageSizeDropdown"
pageSizeDropdown.DataSource = countList
pageSizeDropdown.DataBind()
AddHandler pageSizeDropdown.SelectedIndexChanged, _
AddressOf HandlePageSizeChange
pageSizePanel.Controls.Add(pageSizeDropdown)
...
MyBase.Controls.AddAt(0, pageSizePanel)
MyBase.OnPreRender(e)
End Sub
HTML-код
<select name="tab$grid1Tab$RadGrid1$pageSizeDropdown"
id="tab_grid1Tab_RadGrid1_pageSizeDropdown">
<option selected="selected" value="10">10</option>
<option value="20">20</option>
<option value="40">40</option>
<option value="80">80</option>
<option value="All">All</option>
</select>
Итак, это как-то связано с тем, что я «ввожу» элементы управления? Связано ли это с динамическим добавлением элементов управления?
Решение
Первое, что я заметил, было то, что вы упустили это:
pageSizeDropdown.AutoPostBack = true
но я не уверен, что это все, что вам нужно для его работы
Другие советы
Вам необходимо установить " AutoPostBack " Значение true для раскрывающегося списка для обратной передачи. В противном случае другой элемент управления должен будет отправить форму обратно (однако событие SelectedIndexChanged сработает, когда это произойдет).
Я думаю, что должен быть создан элемент управления pageSizeDropdown и событие, подключенное ранее в жизненном цикле страницы, см. http://msdn.microsoft.com/en-us/library/ms178472.aspx . Динамически добавленный элемент управления должен быть создан до события LoadComplete страницы, чтобы его событие управления могло сработать.