This is a migrated thread and some comments may be shown as answers.

How to maintain checkbox state during paging

1 Answer 158 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Testing
Top achievements
Rank 1
Testing asked on 30 Jan 2014, 11:52 AM
hi,
  I want to maintain checkbox state after paging
here is my code
<telerik:RadGrid ID="grid1" runat="server" AllowPaging="True"
                                              CssClass="rgHeaderDiv"  AllowMultiRowSelection="True"
                                              AutoGenerateColumns="False" 
                                              onneeddatasource="grid1_NeedDataSource" ShowFooter="true"
                                              GridLines="None" ShowGroupPanel="True" >
                                               <ClientSettings AllowDragToGroup="True">
                                                          <Scrolling AllowScroll="true"  UseStaticHeaders="true" SaveScrollPosition="true" />                                                         
                                               </ClientSettings>
                                     
                                         <MasterTableView  AutoGenerateColumns="false" >  <FilterItemStyle HorizontalAlign="Left" />
                                         <FilterItemStyle HorizontalAlign="Left" />
                                             <Columns>
                                                 <telerik:GridTemplateColumn UniqueName="CheckBoxTemplateColumn" HeaderStyle-Width="5%">
                                                     <ItemTemplate>
                                                         <asp:CheckBox ID="chk_ItemProperty" runat="server" OnCheckedChanged="chk_ItemProperty_CheckedChanged"
                                                         AutoPostBack="True" />
                                                     </ItemTemplate>
                                                     <HeaderTemplate>
                                                         <asp:CheckBox ID="chk_HeaderProperty" runat="server" OnCheckedChanged="chk_HeaderProperty_CheckedChanged"
                                                         AutoPostBack="True" />
                                                     </HeaderTemplate>
                                                 </telerik:GridTemplateColumn>
                                               <telerik:GridBoundColumn Display="false" DataField="col" DataType="System.Int32" HeaderText="col" FilterControlAltText="Filter column column" UniqueName="col"/>
                                               <telerik:GridBoundColumn DataField="Col1" DataType="System.Decimal" HeaderText="Col1" FilterControlAltText="Filter column column" UniqueName="Col1" HeaderStyle-Width="15%" ItemStyle-HorizontalAlign="Left" HeaderStyle-HorizontalAlign="Left"/>
                                               <telerik:GridBoundColumn DataField="Col2" DataType="System.String" HeaderText="Col2" FilterControlAltText="Filter column column" UniqueName="Col2" HeaderStyle-Width="15%" ItemStyle-HorizontalAlign="Left" HeaderStyle-HorizontalAlign="Left" />
                                               <telerik:GridBoundColumn DataField="Col3" DataType="System.Int32" HeaderText="Col3" FilterControlAltText="Filter column column" UniqueName="Col3" HeaderStyle-Width="15%"  ItemStyle-HorizontalAlign="Left" HeaderStyle-HorizontalAlign="Left"/>
                                             </Columns>
                                         </MasterTableView>
                                         </telerik:RadGrid>
in cs file
protected void chk_ItemProperty_CheckedChanged(object sender, EventArgs e)
    {
        ((sender as CheckBox).NamingContainer as GridItem).Selected = (sender as CheckBox).Checked;
        bool checkHeader = true;
        foreach (GridDataItem dataItem in grid1.MasterTableView.Items)
        {
            if (!(dataItem.FindControl("chk_ItemProperty") as CheckBox).Checked)
            {
                checkHeader = false;
                break;
            }
        }
        GridHeaderItem headerItem = gv_LeaseProperty1.MasterTableView.GetItems(GridItemType.Header)[0] as GridHeaderItem;
        (headerItem.FindControl("chk_HeaderProperty") as CheckBox).Checked = checkHeader;
    }
 
    protected void chk_HeaderProperty_CheckedChanged(object sender, EventArgs e)
    {
        CheckBox headerCheckBox = (sender as CheckBox);
        foreach (GridDataItem dataItem in grid1.MasterTableView.Items)
        {
            (dataItem.FindControl("chk_ItemProperty") as CheckBox).Checked = headerCheckBox.Checked;
            dataItem.Selected = headerCheckBox.Checked;
        }
    }
its works fine ... but when I change page index then selected state of check box not maintain.
please suggest me how to solve this problem.

1 Answer, 1 is accepted

Sort by
0
Accepted
Jayesh Goyani
Top achievements
Rank 2
answered on 30 Jan 2014, 12:38 PM
Hello,

Please check below link/demo.
Persisting CheckBox control state in GridTemplateColumn on rebind

Jayesh Goyani
Tags
Grid
Asked by
Testing
Top achievements
Rank 1
Answers by
Jayesh Goyani
Top achievements
Rank 2
Share this question
or