簡體   English   中英

如何使gridView命令字段按鈕進入ajax更新面板PostBackTrigger

[英]How to make a gridView command field button into an ajax update panel PostBackTrigger

我在ajax更新面板中有一個gridview。 我已將其他按鈕事件設置為AsyncPostBackTriggers,但我希望選擇按鈕打開子網頁,因此它必須是回發。 我嘗試了以下方法:

<Triggers>
      <asp:AsyncPostBackTrigger ControlID="gvClients" EventName="RowCancelingEdit" />
      <asp:AsyncPostBackTrigger ControlID="gvClients" EventName="RowEditing" />
      <asp:AsyncPostBackTrigger ControlID="gvClients" EventName="RowUpdated" />
      <asp:AsyncPostBackTrigger ControlID="gvClients" EventName="RowUpdating" />
      <asp:AsyncPostBackTrigger ControlID="gvClients" EventName="Sorted" />
      <asp:AsyncPostBackTrigger ControlID="gvClients" EventName="Sorting" />
      <asp:PostBackTrigger ControlID="gvClients" />
</Triggers>

我收到以下錯誤:“ System.ArgumentException:不能同時通過RegisterAsyncPostBackControl和RegisterPostBackControl注冊ID為'gvClients'的控件。如果與目標控件關聯的觸發器沖突,則可能發生。

我嘗試從后面的代碼訪問選擇按鈕並將其設置為觸發器。

這是代碼:

   protected void gvClients_RowDataBound(object sender, GridViewRowEventArgs e)
    {
       if (e.Row.RowType == DataControlRowType.DataRow)
        {     
            Button btnDtls = (Button)e.Row.Cells[0].Controls[2];
            string btnDtlsId = btnDtls.ID;
            PostBackTrigger trigger = new PostBackTrigger();
            trigger.ControlID = btnDtlsId;
            UpdatePanel1.Triggers.Add(trigger);
        }
    }

在調試中,我看到按鈕的ID為“ ctl01”,但出現此錯誤:“在UpdatePanel'UpdatePanel1'中找不到ID為'ctl01'的控件”。 有沒有一種方法可以訪問控制字段選擇按鈕並將其設置為PostBackTrigger?

由於按鈕位於模板內部,因此其最終ID是不同的,您可以從UniqueID屬性中獲取它。 http://msdn.microsoft.com/zh-CN/library/system.web.ui.control.uniqueid.aspx

暫無
暫無

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

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