Full postback triggered by LinkButton inside GridView inside UpdatePanel

weixin_30639719發表於2020-04-05

GridView inside of a UpdatePanel,get the button to trigger a partial postback

<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

轉載於:https://www.cnblogs.com/KingStar/p/3700864.html

相關文章