![](/img/trans.png)
[英]how to bind dropdownlist which is inside the itemtemplate field of datalist control
[英]how to find control of dropdownlist inside a datalist
我有一個DataList,里面有一個DropDownList:
<asp:DataList ID="dlconfigureItem" runat="server">
<ItemTemplate>
<asp:DropDownList CssClass="config-select" ID="ddlitem runat="server"></asp:DropDownList>
</ItemTemplate>
</asp:DataList>
如何在服務器端獲取DropDownList的selectedIndexchanged事件? 我嘗試了這個:
public void ddlitem_selectedindexchanged (object sender, EventArgs e)
{
}
但它不起作用。
從SelectedIndexChanged
事件中,最簡單的方法是將sender
轉換為DropDownList
var ddl = (DropDownList)sender;
發送者始終是作為事件源的控件。
為了完整起見,來自DataList
ItemDataBound
:
protected void dlconfigureItem_ItemDataBound(object sender, DataListItemEventArgs e)
{
DropDownList ddlitem = e.Item.FindControl("ddlitem") as DropDownList;
if (ddlitem != null)
{
// ...
}
}
編輯 :您忘了注冊活動嗎?
<asp:DropDownList CssClass="config-select"
ID="ddlitem"
OnSelectedIndexChanged="ddlitem_selectedindexchanged"
runat="server">
</asp:DropDownList>
請注意,您不應在回發時將DataList綁定到它的DataSource,否則不會觸發事件。 因此,請檢查頁面的IsPostBack
屬性。
例如在page_load
:
if(!IsPostBack)BindDataList();
您已經定義了服務器端方法:
public void ddlitem_selectedindexchanged (object sender, EventArgs e)
{
}
但是您沒有告訴客戶端有一個適合您的事件,因此在html代碼中這樣告訴它:
onselectedindexchanged="ddlitem_selectedindexchanged"
並將AutoPostBack屬性設置為true。
注冊事件並設置AutoPostBack="true"
<asp:DropDownList CssClass="config-select"
ID="ddlitem"
AutoPostBack="true"
OnSelectedIndexChanged="ddlitem_selectedindexchanged"
runat="server">
</asp:DropDownList>
事件(在選定的索引更改上,您可以獲得選定的值)
protected void ddlCategory_SelectedIndexChanged(object sender, EventArgs e)
{
var ddlList = (DropDownList)sender;
string selectedValue = ((DropDownList)ddlList.NamingContainer.FindControl("ddlitem")).SelectedValue;
}
不知道您是否無法在服務器上獲取選定的項目,或者找不到處理事件的方法。 如果您的問題與事件處理有關,請嘗試以下操作
<asp:DataList ID="dlconfigureItem" runat="server">
<ItemTemplate>
<asp:DropDownList CssClass="config-select" ID="ddlitem"
OnSelectedIndexChanged="ddlitem_selectedindexchanged"
AutoPostBack="true" runat="server"></asp:DropDownList>
</ItemTemplate>
</asp:DataList>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.