Динамически добавленный элемент управления не выполняет обратную передачу - PullRequest
1 голос
/ 17 ноября 2008

Я переопределяю Grid, добавив некоторые функции клиента. Одной из функций является раскрывающийся список для настройки размера страницы. Я расширяю сетку с помощью клиентского серверного элемента управления, который прекрасно работает для того, что я уже сделал. Однако сейчас у меня возникли некоторые проблемы с получением динамически добавленного элемента управления для выполнения обратной передачи. 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>

Так, это как-то связано с тем, когда я «вводю» элементы управления? Связано ли это с динамическим добавлением элементов управления?

Ответы [ 3 ]

2 голосов
/ 17 ноября 2008

Первое, что я заметил, было то, что вы упустили это:

pageSizeDropdown.AutoPostBack = true

но я не уверен, что это все, что вам нужно для работы

1 голос
/ 17 ноября 2008

Я думаю, что необходимо создать элемент управления pageSizeDropdown и событие, подключенное ранее в жизненном цикле страницы, см. http://msdn.microsoft.com/en-us/library/ms178472.aspx. Динамически добавленный элемент управления необходимо создать до события страниц LoadComplete, чтобы его событие управления могло огонь.

1 голос
/ 17 ноября 2008

Вам нужно установить «AutoPostBack» в true для выпадающего списка для обратной передачи. В противном случае другой элемент управления должен будет отправить форму обратно (однако событие SelectedIndexChanged сработает, когда это произойдет).

...