C# 将updatepanel与gridview templatefield(ImageButton)一起使用,触发事件,但不更改ForIntent
我将updatepanel与templatefield一起使用,其itemTemplate是imagebutton控件。当按下imagebutton时,按钮后面的事件被触发,该事件用于填充文本字段,但它不这样做 .aspx代码: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">
<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"});
}
}