I use GridView in the updated panel. I have mesh buttons for editing and canceling.
The first time I click the "Edit" button, the gridview edit template is displayed in order. Then, if I click cancel or edit on a different line, nothing will happen. It seems that the update panel has stopped working.
If I do the same without the update panel, postback works fine and gridview does what it should (although it is rather cumbersome as it refreshes the whole page, so I want to use the update panel!)
<asp:UpdatePanel ID="upSentOrders" runat="server" UpdateMode="Conditional"> <ContentTemplate> <asp:GridView ID="gvSentOrders" runat="server" autogeneratecolumns="False" allowpaging="false" DataKeyNames="titxn_id" AlternatingRowStyle-CssClass="gvAlternate" CssClass="gvTable" OnRowDataBound="addSentTotals" OnRowEditing="editOrder" OnRowCancelingEdit="cancelEdit" OnDataBound="showSentTotals" AutoGenerateEditButton="true" AutoGenerateDeleteButton="false" ShowFooter="true" ShowHeader="true"> <Columns> <asp:TemplateField> <HeaderTemplate> <table class="basketHeader"> <tr> <td class="basketTitle"><asp:Label ID="lblTitle" runat="server" Text="Order Date" /></td> <td class="basketPX"><asp:Label ID="lblPXOffer" runat="server" Text="Part Ex" /></td> <td class="basketCash"><asp:Label ID="lblCashOffer" runat="server" Text="Cash" /></td> <td class="basketDelete"> </td> </tr> </table> </HeaderTemplate> <ItemTemplate> <table class="basket"> <tr> <td class="basketTitle"><asp:Label ID="lblTitle" runat="server" Text='<%# String.Format("{0:dd MMMM yyyy}", Eval("titxn_date")) %>' /></td> <td class="basketPX"><asp:Label ID="lblPXOfferItem" runat="server" Text='<%# "£" + Eval("titxn_totalpxatsend") %>' /></td> <td class="basketCash"><asp:Label ID="lblCashOfferItem" runat="server" Text='<%# "£" + Eval("titxn_totalcashatsend") %>' /></td> <td class="basketDelete"><asp:Button ID="btnEdit" Text="" CommandArgument="1" runat="server" CssClass="editButton" ToolTip="View Order" OnClick="viewOrder" /></td> </tr> </table> </ItemTemplate> <EditItemTemplate> <table class="basket"> <tr> <td class="basketTitle"><asp:Label ID="lblTitle" runat="server" Text='<%# String.Format("{0:dd MMMM yyyy}", Eval("titxn_date")) %>' /></td> <td class="basketPX"><asp:Label ID="lblPXOfferItem" runat="server" Text='<%# "£" + Eval("titxn_totalpxatsend") %>' /></td> <td class="basketCash"><asp:Label ID="lblCashOfferItem" runat="server" Text='<%# "£" + Eval("titxn_totalcashatsend") %>' /></td> <td class="basketDelete"><asp:Button ID="btnStopEdit" Text="" CommandArgument="-1" runat="server" CssClass="stopEditButton" ToolTip="View Order" OnClick="viewOrder" /></td> </tr> <tr> <td colspan="4"> Items GridView here... </td> </tr> <tr> <td colspan="4"> <asp:Label ID="lblAddress" runat="server" Text='<%# Eval("titxn_name") + ", " + Eval("titxn_addressnumber") + " " + Eval("titxn_addressone") + ", " + Eval("titxn_addresstown") + ", " + Eval("titxn_addresscounty") + ", " + Eval("titxn_addresscountry") + ", " + Eval("titxn_addresspostcode") + "." %>' /> </td> </tr> </table> </EditItemTemplate> <FooterTemplate> <table class="basketTotals"> <tr> <td class="basketTitle">Total Still To Arrive</td> <td class="basketPX"><asp:Label ID="lblPxTotal" runat="server" Text="" /></td> <td class="basketCash"><asp:Label ID="lblCashTotal" runat="server" Text="" /></td> <td class="basketDelete"> </td> </tr> </table> </FooterTemplate> </asp:TemplateField> </Columns> <EmptyDataTemplate> <p>There is no orders still being processed. Look like we've already completed all the orders you've sent us!</p> </EmptyDataTemplate> </asp:GridView> </ContentTemplate> </asp:UpdatePanel>
The code is behind ....
protected void editOrder(object sender, GridViewEditEventArgs e) { gvSentOrders.EditIndex = e.NewEditIndex; bindSentGridView(); } protected void cancelEdit(object sender, GridViewCancelEditEventArgs e) { gvSentOrders.EditIndex = -1; bindSentGridView(); }
Any thoughts would be of great help. Thanks.
source share