DropDownList OnSelectedIndexChanged not triggered
本文关键字:triggered not OnSelectedIndexChanged DropDownList | 更新日期: 2023-09-27 18:19:31
这是我的问题,我的asp.net中有一个dropdownlist
和一个gridview
。根据DropDownList的选定值,我想将内容/绑定数据更改为GridView。但它并没有发生,OnSelectedIndexChanged
事件并没有在变化中启动。
Aspx代码:
<asp:DropDownList ID="drpRegion" runat="server" CssClass="ddlfield" AutoPostBack="true"
OnSelectedIndexChanged="drpRegion_SelectedIndexChanged" />
Aspx.cs代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindDropDown(); //data binding for dropdownlist
BindRegionWiseTally(); //data binding for gridview
}
}
protected void drpRegion_SelectedIndexChanged(object sender, EventArgs e)
{
BindRegionWiseTally(); //data binding for gridview
}
我根据建议设置了佩奇的EnableViewState="false"
。
尝试将BindDropDown()方法移动到页面生命周期的早期并无条件执行。
protected override void OnInit(EventArgs e)
{
BindDropDown();//data binding for dropdownlist
}
澄清一下——是的,这是因为您将页面的EnableViewState设置为false。
事实上,这不仅仅是所选的值,整个下拉项列表(保存在ViewState中)可能已经消失了。
SelectedValue属性是在我们有了项目列表后设置的,它取决于它
禁用ViewState后,不会在每次回发时自动恢复该列表。
由于我尝试时没有发现代码中有任何更改,Dropdowchange事件正在启动,请保留断点并检查它,
ASPX代码:
<asp:DropDownList ID="DropDownList1" runat="server" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" AutoPostBack="True">
<asp:ListItem Value="1">Tracking Reader</asp:ListItem>
<asp:ListItem Value="2" Selected ="True" >Dropbox Reader</asp:ListItem>
</asp:DropDownList>
Aspx.cs代码
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindDropDown();//data binding for dropdownlist
//BindRegionWiseTally();//data binding for gridview
}
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
Response.Write("Invoked sucessfully.");
}
protected void BindDropDown()
{
DropDownList1.Items.Add("All");
DropDownList1.Items.Add("New");
DropDownList1.Items.Add("Update");
DropDownList1.Items.Add("Delete");
}