C# 将updatepanel与gridview templatefield(ImageButton)一起使用,触发事件,但不更改ForIntent

C# 将updatepanel与gridview templatefield(ImageButton)一起使用,触发事件,但不更改ForIntent,c#,asp.net,gridview,updatepanel,C#,Asp.net,Gridview,Updatepanel,我将updatepanel与templatefield一起使用,其itemTemplate是imagebutton控件。当按下imagebutton时,按钮后面的事件被触发,该事件用于填充文本字段,但它不这样做 .aspx代码: <asp:TemplateField ShowHeader="False">

我将updatepanel与templatefield一起使用,其itemTemplate是imagebutton控件。当按下imagebutton时,按钮后面的事件被触发,该事件用于填充文本字段,但它不这样做

.aspx代码:

                                          <asp:TemplateField ShowHeader="False">
                                                <ItemTemplate>
                                                    <asp:UpdatePanel ID="UpdatePanel4" runat="server">
                                                        <Triggers>
                                                            <asp:AsyncPostBackTrigger ControlID="_btnUserEdit" EventName="Click" />
                                                        </Triggers>
                                                        <ContentTemplate>
                                                            <asp:ImageButton ID="_btnUserEdit" runat="server" ImageUrl="~/images/edit.png" CommandName="" Height="30px" Width="30px" OnClick="_btnUserEdit_Click" CausesValidation="false" />
                                                        </ContentTemplate>
                                                    </asp:UpdatePanel>                                                    
                                                </ItemTemplate>
                                                <ItemStyle Width="35px" />
                                            </asp:TemplateField>

要在
GridView
中使用
AsyncPostBackTrigger
,需要在
RowDataBound
事件中添加触发器,如下所示

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if(e.Row.RowType == DataControlRowType.DataRow)
    {
        var editButton = e.Row.FindControl("_btnUserEdit") as ImageButton;
        UpdatePanel1.Triggers.Add(new  AsyncPostBackTrigger{  
            ControlID=editButton.UniqueID, 
            EventName="click"});
    }
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if(e.Row.RowType == DataControlRowType.DataRow)
    {
        var editButton = e.Row.FindControl("_btnUserEdit") as ImageButton;
        UpdatePanel1.Triggers.Add(new  AsyncPostBackTrigger{  
            ControlID=editButton.UniqueID, 
            EventName="click"});
    }
}