Full postback triggered by LinkButton inside GridView inside UpdatePanel
5599 ワード
GridView inside of a UpdatePanel,get the button to trigger a partial postback
You need to register each and every LinkButton as an AsyncPostBackTrigger. After each row is bound in your GridView, you'll need to search for the LinkButton and register it through code as follows:
参照先:
http://msdn.microsoft.com/en-us/library/system.web.ui.updatepanel.childrenastriggers.aspx
http://stackoverflow.com/questions/4872210/full-postback-triggered-by-linkbutton-inside-gridview-inside-updatepanel
<asp:ScriptManager ID="ContentScriptManager" runat="server"/>
<asp:UpdatePanel ID="ContentUpdatePanel" runat="server"ChildrenAsTriggers="true">
<ContentTemplate>
<asp:GridView ID="OrderGrid" runat="server"AllowPaging="false"AllowSorting="false"
AutoGenerateColumns="false">
<Columns>
<asp:TemplateFieldHeaderText="">
<ItemTemplate>
<asp:LinkButton ID="MarkAsCompleteButton" runat="server"Text="MarkAsComplete"
CommandName="MarkAsComplete"CommandArgument='<%# Eval("Id") %>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundFieldDataField="Name"HeaderText="Name"/>
<asp:BoundFieldDataField="LoadDate"HeaderText="Load Date"/>
<asp:BoundFieldDataField="EmployeeCutOffDate"HeaderText="Cut Off Date"/>
<asp:BoundFieldDataField="IsComplete"HeaderText="Is Completed"/>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
You need to register each and every LinkButton as an AsyncPostBackTrigger. After each row is bound in your GridView, you'll need to search for the LinkButton and register it through code as follows:
protected void OrderGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
LinkButton lb = e.Row.FindControl("MarkAsCompleteButton") as LinkButton;
ScriptManager.GetCurrent(this).RegisterAsyncPostBackControl(lb);
}
参照先:
http://msdn.microsoft.com/en-us/library/system.web.ui.updatepanel.childrenastriggers.aspx
http://stackoverflow.com/questions/4872210/full-postback-triggered-by-linkbutton-inside-gridview-inside-updatepanel