Click here to Skip to main content
15,887,027 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I want to keep checkbox checked in a datagrid during pagination.

What I have tried:

<pre>  <cc1:XDataGrid  ID="grdCorporateAcMap" runat="server"
                                            AllowPaging="True" width="100%" AutoGenerateColumns="False" CssClass="C3_DATAGRID_FIXED_SIZE"
                                            ShowFooter="True"  
                                            OnPageIndexChanged="grdCorporateAcMap_PageIndexChanged" 
                                            OnPagerClicked="grdCorporateAcMap_PagerClicked" AllowCustomPaging="True">                                            
                                            <AlternatingItemStyle BorderWidth="0px" CssClass="C3_DATAGRID_CELLDATA2"></AlternatingItemStyle>
                                            <ItemStyle BorderWidth="0px" CssClass="C3_DATAGRID_CELLDATA" HorizontalAlign="Left">
                                            </ItemStyle>
                                            <HeaderStyle CssClass="C3_DATAGRID_HEADING"></HeaderStyle>
                                            <PagerStyle HorizontalAlign="Right" Mode="NumericPages" Wrap="True" CssClass="C3_DATAGRID_CELLDATANEW" />
                                            <Columns>
                                                <asp:TemplateColumn HeaderText="Sl.No.">
                                                    <ItemTemplate>
                                                        <asp:Label runat="server" Text='<%# (grdCorporateAcMap.PageSize*grdCorporateAcMap.CurrentPageIndex)+(Container.ItemIndex)+1%>'
                                                            ID="lblSlNo">
                                                        </asp:Label>
                                                    </ItemTemplate>
                                                    <HeaderStyle Width="5%"></HeaderStyle>
                                                </asp:TemplateColumn>
                                                <asp:TemplateColumn HeaderText="Corporate Name">
                                                    <ItemTemplate>
                                                        <asp:Label runat="server" Text='<%# Eval("CorporateName") %>' ID="lblCorporateName"></asp:Label>
                                                    </ItemTemplate>
                                                    <HeaderStyle Width="15%"></HeaderStyle>
                                                </asp:TemplateColumn>
                                                <asp:TemplateColumn HeaderText="Account No.">
                                                    <ItemTemplate>
                                                        <asp:Label runat="server" Text='<%# Eval("AccountNumber") %>' ID="lblAccntNo"></asp:Label>
                                                    </ItemTemplate>
                                                    <HeaderStyle Width="20%"></HeaderStyle>
                                                </asp:TemplateColumn>
                                                  <%-- Added on 12.10.2017 for FAB Merger--%>
                                                 <asp:TemplateColumn HeaderText="Salary Company Code">
                                                    <ItemTemplate>
                                                        <asp:Label runat="server" Text='<%# Eval("SalaryCompanyCode") %>' ID="lblSalaryCompanyCode"></asp:Label>
                                                    </ItemTemplate>
                                                    <HeaderStyle Width="20%"></HeaderStyle>
                                                </asp:TemplateColumn>
                                                  <%-- Added on 12.10.2017 for FAB Merger--%>
                                                <asp:TemplateColumn HeaderText="Remarks">
                                                    <ItemTemplate>
                                                        <asp:Label runat="server" Text='<%# Eval("Remarks") %>' ID="lblRemark"></asp:Label>
                                                    </ItemTemplate>
                                                    <HeaderStyle Width="15%"></HeaderStyle>
                                                </asp:TemplateColumn>                                                
                                                <asp:TemplateColumn HeaderText="Status">
                                                    <ItemTemplate>
                                                        <asp:Label runat="server" Text='<%# Eval("CurrentStatus") %>' ID="lblCurrentStatus"></asp:Label>
                                                    </ItemTemplate>
                                                    <HeaderStyle Width="9%" />
                                                </asp:TemplateColumn>
                                                <asp:TemplateColumn HeaderText="Maker Action">
                                                    <ItemTemplate>
                                                        <asp:Label runat="server" Text='<%# Eval("ActionStatus") %>' ID="lblMakerAction"></asp:Label>
                                                    </ItemTemplate>
                                                    <HeaderStyle Width="10%" />
                                                </asp:TemplateColumn>
                                                <asp:TemplateColumn HeaderText="Select">
                                                    <ItemTemplate>
                                                        <asp:CheckBox ID="O_Chkbox" runat="server"  />
                                                        <input type="hidden" runat="server" id="hidId_O" name="hidId_O" value='<%# Eval("AcMapId") %>' />
                                                        <input type="hidden" runat="server" id="hidId_C" name="hidId_C" value='<%# Eval("CorporateId") %>' />
                                                        <input type="hidden" runat="server" id="hidId_A" name="hidId_A" value='<%# Eval("AccountNumber") %>' />
                                                        <input type="hidden" runat="server" id="hidId_AS" name="hidId_A" value='<%# Eval("ActionStatus") %>' />
                                                    </ItemTemplate>
                                                    <HeaderStyle Width="20%"></HeaderStyle>
                                                </asp:TemplateColumn>
                                            </Columns>
                                        </cc1:XDataGrid>


dsCorporateAcMap = new MOL_CorporateAcMap().FetchCorporateAccountMappingDetails(Session["USER"].ToString(),"0",
CurrentPageIndex, grdCorporateAcMap.PageSize);

grdCorporateAcMap.VirtualItemCount = int.Parse(dsCorporateAcMap.Tables[1].Rows[0]["Newcount"].ToString());


grdCorporateAcMap.DataSource = dsCorporateAcMap.Tables[0];
grdCorporateAcMap.DataBind();
Posted
Updated 21-Dec-17 18:37pm

1 solution

I am not sure if ASP.Net supports any such features but it looks to me as feature by design not to maintain state of checkbox.

However, it can be managed using very simple approach-
--> Create a list for keeping the id/unique value against checked checkboxes
--> On checkchanged event update the list to add/remove ids
--> On page index changed, loop through the gridview rows and explicitly check

Hope, it works for you.
Please let me know in case of any queries.

Thanks!
 
Share this answer
 

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