1

我正在覆盖一个网格,添加一些客户功能。其中一项功能是用于调整页面大小的下拉菜单。我正在使用客户服务器控件扩展网格,这对于我迄今为止所做的工作非常有用。但是,现在我在让动态添加的控件进行回发时遇到了一些麻烦。启动回发的 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>

那么,这与我“注入”控件时有关系吗?它与控件的动态添加有关吗?

4

3 回答 3

2

我注意到的第一件事是你会错过这个:

pageSizeDropdown.AutoPostBack = true

但我不确定这是否就是它工作所需要的全部

于 2008-11-17T19:03:23.697 回答
1

您需要将“AutoPostBack”设置为 true 才能使下拉列表回发。否则,另一个控件将不得不发回表单(但是,当发生这种情况时,SelectedIndexChanged 事件将触发)。

于 2008-11-17T19:02:25.633 回答
1

我认为需要创建控件 pageSizeDropdown 并在页面生命周期的早期连接事件,请参阅http://msdn.microsoft.com/en-us/library/ms178472.aspx。需要在页面 LoadComplete 事件之前创建动态添加的控件,以便触发其控件事件。

于 2008-11-17T19:17:34.277 回答