代码未达到SelectedIndexChanged事件

时间:2012-11-01 04:40:39

标签: c# asp.net

我在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&amp;我将报告中的页数填充到下拉列表中。

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);
 }

3 个答案:

答案 0 :(得分:1)

试试这个:

如果您有ddPages1.Items.Add(listItem);,请将其替换为

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

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

答案 1 :(得分:0)

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

您启用了ViewState吗?

答案 2 :(得分:0)

您在下拉列表中设置了Autopostback = true,但您可能会将Autopostback = true放在 usercontrol