[英]background image disappears after using button in postbacktrigger of update panel in asp.net
[英]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.