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

[Solved] Persist the state of checked records during paging in radgrid

5 Answers 354 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Swapnil
Top achievements
Rank 1
Swapnil asked on 14 Aug 2013, 07:45 AM
Hi,
I have a grid having multiple records so i used paging now what i wanted is when i check first page records and go in any page and return on first the checked records userid must be maintained and on single button(outside grid) click those records data goes in database.
Thanks.

5 Answers, 1 is accepted

Sort by
0
Jayesh Goyani
Top achievements
Rank 2
answered on 14 Aug 2013, 08:07 AM
Hello,

Please check this link.

Thanks,
Jayesh Goyani
0
Swapnil
Top achievements
Rank 1
answered on 14 Aug 2013, 09:32 AM
Link given by you is not what i want,for reference just look on this code
<telerik:RadGrid ID="RadGrid1" runat="server" AllowMultiRowSelection="True" AllowPaging="True"
           PageSize="5" AllowSorting="True" OnNeedDataSource="RadGrid1_NeedDataSource" CellSpacing="0"
           GridLines="None" ShowGroupPanel="True">
           <PagerStyle Mode="NextPrevAndNumeric" AlwaysVisible="true"></PagerStyle>
           <ClientSettings Selecting-AllowRowSelect="true" AllowDragToGroup="True">
               <Selecting AllowRowSelect="True"></Selecting>
           </ClientSettings>
           <MasterTableView DataKeyNames="UserId">
               <Columns>
                   <telerik:GridClientSelectColumn UniqueName="ClientSelectColumn" />
               </Columns>
               <PagerStyle AlwaysVisible="True"></PagerStyle>
           </MasterTableView>
       </telerik:RadGrid>
       <br />
       <asp:Button ID="Button1" runat="server" Text="Save" OnClick="Button1_Click" Width="130px"
           Height="25px" ValidationGroup="val" />
       <br />
and
public partial class GroupUserCreation : System.Web.UI.Page
{
    Globas obj = new Globas();
    CheckBox chkbox = new CheckBox();
    string GroupId="";
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
 
            DataTable dt1 = obj.GroupDetails();
            cmbgroupname.DataSource = dt1;
            cmbgroupname.DataTextField = "GroupName";
            cmbgroupname.DataValueField = "GroupId";
            cmbgroupname.DataBind();
        }
      
        
    }
 
    protected void Button1_Click(object sender, EventArgs e)
    {
        
        {
            GroupId = cmbgroupname.SelectedItem.Value.ToString();
            foreach (GridItem item in RadGrid1.MasterTableView.Items)
            {
 
                GridDataItem dataitem = (GridDataItem)item;
                TableCell cell = dataitem["ClientSelectColumn"];
                CheckBox checkBox = (CheckBox)cell.Controls[0];
                if (checkBox.Checked)
                {
                    int userid = Convert.ToInt32(dataitem.GetDataKeyValue("UserId").ToString());
                    if (GroupId != null)
                    {
                        obj.InsertGroupUserCreation(Convert.ToInt32(GroupId), userid);
                    }
                }
 
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
     
    protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
    {
        DataTable dt = obj.UserDetails();
        RadGrid1.DataSource = dt;
      
    }
 
    
}
Thanks in advance
0
Jayesh Goyani
Top achievements
Rank 2
answered on 14 Aug 2013, 10:37 AM
Hello,

<telerik:RadGrid ID="RadGrid1" runat="server" AllowMultiRowSelection="True" AllowPaging="True"
       PageSize="2" AllowSorting="True"
       OnNeedDataSource="RadGrid1_NeedDataSource" CellSpacing="0"
       GridLines="None" ShowGroupPanel="True"
       onitemcommand="RadGrid1_ItemCommand"
       onitemdatabound="RadGrid1_ItemDataBound">
       <PagerStyle Mode="NextPrevAndNumeric" AlwaysVisible="true"></PagerStyle>
       <ClientSettings Selecting-AllowRowSelect="true" AllowDragToGroup="True">
           <Selecting AllowRowSelect="True"></Selecting>
       </ClientSettings>
       <MasterTableView DataKeyNames="ID">
           <Columns>
               <telerik:GridClientSelectColumn UniqueName="ClientSelectColumn" />
           </Columns>
           <PagerStyle AlwaysVisible="True"></PagerStyle>
       </MasterTableView>
   </telerik:RadGrid>
   <br />
   <asp:Button ID="Button1" runat="server" Text="Save" OnClick="Button1_Click" Width="130px"
       Height="25px" ValidationGroup="val" />
protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
  {
 
      dynamic data1 = new[] {
            new { ID = 1, Name ="Name_1"},
            new { ID = 2, Name = "Name_2"},
            new { ID = 3, Name = "Name_1"},
            new { ID = 4, Name = "Name_4"},
            new { ID = 5, Name = "Name_1"}
        };
 
      RadGrid1.DataSource = data1;
 
  }
 
 
  protected void Button1_Click(object sender, EventArgs e)
  {
      if (Session["SelectedItems"] == null)
      {
          List<int> _SelectedItems = (List<int>)Session["SelectedItems"];
 
          foreach (int ID in _SelectedItems)
          {
              // Access Selected ID Here
          }
      }
      
  }
  protected void RadGrid1_ItemCommand(object sender, GridCommandEventArgs e)
  {
      if (RadGrid.PageCommandName == e.CommandName ||
          RadGrid.FirstPageCommandArgument == e.CommandName ||
          RadGrid.LastPageCommandArgument == e.CommandName ||
          RadGrid.NextPageCommandArgument == e.CommandName ||
          RadGrid.PrevPageCommandArgument == e.CommandName)
      {
          foreach (GridDataItem item in RadGrid1.MasterTableView.Items)
          {
              int _Id = Convert.ToInt32(item.GetDataKeyValue("ID").ToString());
 
              if (item.Selected)
              {
                  AddORUpdateItem(_Id, true);
              }
              else
              {
                  AddORUpdateItem(_Id, false);
              }
          }
      }
  }
 
  protected void AddORUpdateItem(int ID, bool IsAdd)
  {
      if (Session["SelectedItems"] == null)
      {
          Session["SelectedItems"] = new List<int>();
      }
 
      List<int> _SelectedItems = (List<int>)Session["SelectedItems"];
 
      if (IsAdd)
      {
          if (_SelectedItems.Where(i => i == ID).FirstOrDefault() == 0)
          {
              _SelectedItems.Add(ID);
          }
      }
      else
      {
          if (_SelectedItems.Where(i => i == ID).FirstOrDefault() != 0)
          {
              _SelectedItems.Remove(_SelectedItems.Where(i => i == ID).FirstOrDefault());
          }
      }
 
      Session["SelectedItems"] = _SelectedItems;
  }
  protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
  {
      if (e.Item is GridDataItem)
      {
          if (Session["SelectedItems"] != null)
          {
              List<int> _SelectedItems = (List<int>)Session["SelectedItems"];
 
              GridDataItem item = e.Item as GridDataItem;
              int _Id = Convert.ToInt32(item.GetDataKeyValue("ID").ToString());
              if (_SelectedItems.Where(i => i == _Id).FirstOrDefault() != 0)
              {
                  item.Selected = true;
              }
              else
              {
                  item.Selected = false;
              }
          }
      }
  }


Thanks,
Jayesh Goyani
0
Swapnil
Top achievements
Rank 1
answered on 14 Aug 2013, 10:51 AM
not getting this code there must be some simple that can easily comatible to my code
thanks
0
Eyup
Telerik team
answered on 19 Aug 2013, 08:19 AM
Hello Swapnil,

You can implement a similar approach to the one demonstrated in the following code-library:
http://www.telerik.com/community/code-library/aspnet-ajax/grid/get-selected-items-through-all-pages.aspx

Hope this helps.

Regards,
Eyup
Telerik
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to the blog feed now.
Tags
Grid
Asked by
Swapnil
Top achievements
Rank 1
Answers by
Jayesh Goyani
Top achievements
Rank 2
Swapnil
Top achievements
Rank 1
Eyup
Telerik team
Share this question
or