[英]EditItemTemplate with DropDownList - onselectedindexchanged
[英]DropDownList OnSelectedIndexChanged not triggered
這是我的問題,我的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
}
我已經根據建議設置了Page的EnableViewState="false"
。
嘗試將BindDropDown()方法移到Page生命周期的早期,然后無條件地進行操作。
protected override void OnInit(EventArgs e)
{
BindDropDown();//data binding for dropdownlist
}
澄清一下-是的,這是因為您將Page的EnableViewState設置為false。
實際上,不僅是選定的值-下拉列表項的整個列表(保存在ViewState中)應該對您來說已經消失了。
一旦有了項目列表,就會設置SelectedValue屬性,這取決於它。
在禁用ViewState的情況下,您不會在每次回發時自動恢復該列表。
由於嘗試時未發現任何代碼更改,因此Dropdownchange事件正在觸發,請保留斷點並進行檢查,
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");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.