我在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);
}
答案 0 :(得分:1)
试试这个:
如果您有ddPages1.Items.Add(listItem);
,请将其替换为
if(!this.IsPostBack)
{
ddPages1.Items.Add(listItem);
}
您可能遇到的问题是,每次填充列表时,您将失去选择。
答案 1 :(得分:0)
请提供更多信息?如何绑定到SelectedIndexChanged事件?你是否以编程方式绑定它?或使用声明表格?
您启用了ViewState吗?
答案 2 :(得分:0)
您在下拉列表中设置了Autopostback = true
,但您可能会将Autopostback = true
放在 usercontrol