0

我有一个用户控件继续在MyPage.aspx. 用户控件包含几个下拉列表;每个都有,Autopostback = true但是当我运行代码并更改下拉项时,会触发其他事件,但不会触发SelectedIndexChanged.

<asp:DropDownList ID="ddPages1" runat="server" EnableViewState="true" AutoPostBack="true"
    onselectedindexchanged="ddPages1_SelectedIndexChanged">
</asp:DropDownList>

ascx 后面的代码:

protected void ddPages1_SelectedIndexChanged(object sender, EventArgs e)
{
    ...
}

ascx 也有ReportViewer& 我正在将报告中的页数填充到下拉列表中。

protected override void Render(HtmlTextWriter writer)
{
    TotalPages = ReportViewer1.LocalReport.GetTotalPages();
    txtPageCount1.Text = Convert.ToString(TotalPages);
    if (TotalPages > 0)
    {
        for (int i = 1; i <= TotalPages; i++)
        {
            ListItem listItem = new ListItem();
            listItem.Value = i.ToString();
            listItem.Text = i.ToString(); 
            ddPages1.Items.Add(listItem);
        }  
    }
    base.Render(writer);
 }
4

3 回答 3

1

试试这个:

在你有的地方ddPages1.Items.Add(listItem);,用

if(!this.IsPostBack)
{
    ddPages1.Items.Add(listItem);
}

您在这里可能遇到的问题是,每次都填充列表,您将失去选择。

于 2012-11-01T05:02:28.317 回答
0

请提供更多信息?如何绑定到 SelectedIndexChanged 事件?您是否以编程方式绑定它?或使用声明形式?

您是否启用了 ViewState?

于 2012-11-01T04:45:43.667 回答
0

你已经Autopostback = true在你的下拉列表中设置了,但可能你把它Autopostback = true放在你的用户控件上

于 2012-11-01T04:54:34.133 回答