Click here to Skip to main content
15,898,134 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi there,
Can you please help me with rebinding my gridview after a row is deleted.
The Datatable that is the datasource for the grid is kept in a session variable on the page. When the user deletes a row from the grid, t
he row is removed from the datatable and the Session datatable is rebound to the gridview. But, when i do this, the gridview displays the correct number of rows but with no data in it.

Teh page design is like so:

XML
<asp:UpdatePanel ID="updPanelResults" runat="server">
                            <ContentTemplate>
                                <asp:Panel ID="selectedResultsPanel"runat="server" Width="100%">
                                    <table width="100%" border="0"><tr>
                                                 <td class="labelText" colspan="4">
                                                     <asp:GridView ID="grdCases" runat="server" AutoGenerateColumns="false" CellPadding="4"
                                                         Visible="false" OnRowCommand="grdCases_RowCommand" OnRowDeleting="grdCases_RowDeleting1">
                                                         <HeaderStyle BackColor="Desktop" CssClass="TABLEHEAD" ForeColor="Black" />
                                                         <Columns>
                                                             <asp:BoundField DataField="RowNumber" HeaderText="Row Number" Visible="false" />
                                                             <asp:TemplateField HeaderText="Make">
                                                                 <HeaderStyle CssClass="grdHeaderStyle" />
                                                                 <ItemTemplate>
                                                                     <asp:Label ID="lblmake" runat="server" />
                                                                 </ItemTemplate>
                                                             </asp:TemplateField>
                                                             <asp:TemplateField HeaderText="Model">
                                                                 <HeaderStyle CssClass="grdHeaderStyle" />
                                                                 <ItemTemplate>
                                                                     <asp:Label ID="lblmodel" runat="server" />
                                                                 </ItemTemplate>
                                                             </asp:TemplateField>
                                                             <asp:TemplateField HeaderText="Registration">
                                                                 <HeaderStyle CssClass="grdHeaderStyle" />
                                                                 <ItemTemplate>
                                                                     <asp:Label ID="lblReg" runat="server" />
                                                                 </ItemTemplate>
                                                             </asp:TemplateField>
                                                             <asp:TemplateField HeaderText="Colour">
                                                                 <HeaderStyle CssClass="grdHeaderStyle" />
                                                                 <ItemTemplate>
                                                                     <asp:Label ID="lblcolour" runat="server" />
                                                                 </ItemTemplate>
                                                             </asp:TemplateField>
                                                             <asp:TemplateField HeaderText="Current Kms">
                                                                 <HeaderStyle CssClass="grdHeaderStyle" />
                                                                 <ItemTemplate>
                                                                     <asp:Label ID="lblcurrKms" runat="server" />
                                                                 </ItemTemplate>
                                                             </asp:TemplateField>
                                                             <asp:TemplateField HeaderText="Province">
                                                                 <HeaderStyle CssClass="grdHeaderStyle" />
                                                                 <ItemTemplate>
                                                                     <asp:Label ID="lblprovince" runat="server" />
                                                                 </ItemTemplate>
                                                             </asp:TemplateField>
                                                             <asp:TemplateField HeaderText="No Of Vehs">
                                                                 <HeaderStyle CssClass="grdHeaderStyle" />
                                                                 <ItemTemplate>
                                                                     <asp:Label ID="lblvehs" runat="server" />
                                                                 </ItemTemplate>
                                                             </asp:TemplateField>
                                                             <asp:TemplateField HeaderText="Accessories">
                                                                 <HeaderStyle CssClass="grdHeaderStyle" />
                                                                 <ItemTemplate>
                                                                     <asp:Label ID="lblaccs" runat="server" />
                                                                     <headerstyle cssclass="grdHeaderStyle" />
                                                                 </ItemTemplate>
                                                             </asp:TemplateField>
                                                             <asp:TemplateField HeaderText="Product">
                                                                 <HeaderStyle CssClass="grdHeaderStyle" />
                                                                 <ItemTemplate>
                                                                     <asp:Label ID="lblproduct" runat="server" />
                                                                 </ItemTemplate>
                                                             </asp:TemplateField>
                                                             <asp:TemplateField HeaderText="Month">
                                                                 <HeaderStyle CssClass="grdHeaderStyle" />
                                                                 <ItemTemplate>
                                                                     <asp:Label ID="lblmonths" runat="server" />
                                                                 </ItemTemplate>
                                                             </asp:TemplateField>
                                                             <asp:TemplateField HeaderText="Usage">
                                                                 <HeaderStyle CssClass="grdHeaderStyle" />
                                                                 <ItemTemplate>
                                                                     <asp:Label ID="lblusage" runat="server" />
                                                                 </ItemTemplate>
                                                             </asp:TemplateField>
                                                             <asp:TemplateField >
                                                             <itemtemplate>
                                                             <asp:ImageButton ID="ImageButton1" runat="server" CommandName='DeleteItem' CommandArgument='<%# Container.DataItemIndex %>' ImageUrl="~/images/del.jpg" />
                                                         </itemtemplate>
                                                             <itemstyle width="2%" />
                                                             </asp:TemplateField>
                                                         </Columns>
                                                         <RowStyle CssClass="grdItemStyle" />
                                                         <PagerStyle CssClass="grdPagerStyle" ForeColor="Black" />
                                                     </asp:GridView>
                                                 </td>
                                             </tr>

The code is as follows:

C#
protected void grdCases_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "DeleteItem")
            {
                int param = Convert.ToInt32(e.CommandArgument);
                DataTable dt = (DataTable)Session ["CurrentTable"];
                DataRow dr = dt.Rows[param];
                dt.Rows.Remove(dr);
                Session ["CurrentTable"] = dt;
                RefreshGrid(dt);                
            }
        }


C#
private void RefreshGrid(DataTable dt)
      {
          grdCases.DataSource = null;
          grdCases.DataBind();
          grdCases.DataSource = dt;
          grdCases.DataBind();
      }


C#
protected void grdCases_RowDeleting1(object sender, GridViewDeleteEventArgs e)
      {

      }



Please advice.

Thanks.
Posted
Updated 15-Aug-12 2:36am
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900