簡體   English   中英

DataList SelectedIndexChange事件未觸發

[英]DataList SelectedIndexChange event not firing

我在數據列表中有超鏈接和隱藏字段,如下所示

<asp:DataList ID="clientsList" runat="server" OnSelectedIndexChanged="clientsList_SelectedIndexChanged1" >
   <ItemTemplate>
      <asp:HyperLink ID="hlName" runat="server" Text='<%# Bind("Name") %>' NavigateUrl="#" ></asp:HyperLink>
      <asp:HiddenField ID="HiddenFieldID" runat="server" Value='<%# Eval("ID") %>' />                     
   </ItemTemplate>
</asp:DataList>

當用戶單擊任何超鏈接時,我需要將該值存儲在應用程序變量中。 但是SelectedIndexChange事件從不觸發。

這是我的代碼:

protected void clientsList_SelectedIndexChanged1(object sender, EventArgs e)
{            
        int idx = clientsList.SelectedIndex;
        HiddenField hiddenCID = clientsList.Items[idx].FindControl("HiddenFieldID") as HiddenField;

        if (hiddenCID != null)
        {
            Logger.UpdateLog("Selected ID: " + hiddenCID.Value.ToString());
        }
    }

我將數據庫中的數據綁定到Page_load事件中的數據Page_load ,如下所示,並且工作正常。

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
       BindDataList();
    }           
}

知道為什么這個事件永遠不會觸發嗎?

就訪問hiddenfield值而言,我的代碼是否正確?

是否設置了超鏈接字段的commandname屬性?

<asp:LinkButton ID="LinkButton1" runat="server" CommandName="Select">Select</asp:LinkButton>

現在在selectedindexchanged方法中:

 protected void DataList1_SelectedIndexChanged(object sender, EventArgs e)
{
    int idx = DataList1.SelectedIndex;
    Label lbl = (Label)DataList1.Items[idx].FindControl("Label1");
    int id =Convert.ToInt32(DataList1.SelectedValue);
}

它行得通嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM