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

GridClientSelectColumn

3 Answers 311 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Kjell
Top achievements
Rank 1
Iron
Iron
Kjell asked on 05 Apr 2014, 08:50 AM
How do I get value (that is checked) from GridClientSelectColumn, and how do I save the ones I selected after a postback?

When i submit i always get dataitem.Selected = false/nothing...

Protected Sub rbFelAnmal_Click(sender As Object, e As EventArgs) Handles rbFelAnmal.Click
 
    For Each item As GridItem In RadGrid1.MasterTableView.Items
        Dim dataitem As GridDataItem = DirectCast(item, GridDataItem)
        If dataitem.Selected Then
            value = value & dataitem.GetDataKeyValue("DateOfBirth").ToString() & "<br>"
        Else
 
        End If
    Next
 
    lblCheck.Text = value
 
End Sub

3 Answers, 1 is accepted

Sort by
0
Shinu
Top achievements
Rank 2
answered on 05 Apr 2014, 08:56 AM
Hi Kjell,

I guess you want the checkbox selection to persist after postback. Please take a look at this article to know about Persisting the Selected Rows Client-side on Sorting/Paging/Filtering/Grouping.

Thanks,
Shinu
0
Kjell
Top achievements
Rank 1
Iron
Iron
answered on 05 Apr 2014, 05:16 PM
Still the same problem at postback.
The only difference is that the checkbox selection is saved when sorting...
I want to have the GetDataKeyValue("DateOfBirth") from the column that i have checked.
0
Shinu
Top achievements
Rank 2
answered on 07 Apr 2014, 03:52 AM
Hi Kjell,

Please try the sample code snippet. I was able to get the selected rows DataKeyValue on a button click.

ASPX:
<telerik:RadGrid ID="RadGrid1" runat="server" DataSourceID="SqlDataSource1" AllowPaging="True" PageSize="15" AllowSorting="True" AllowMultiRowSelection="True" AllowFilteringByColumn="true"  OnItemCommand="RadGrid1_ItemCommand" OnPreRender="RadGrid1_PreRender" OnItemCreated="RadGrid1_ItemCreated">
    <MasterTableView DataKeyNames="CustomerID">
        <Columns>
            <telerik:GridClientSelectColumn UniqueName="ClientSelectColumn" />
        </Columns>
    </MasterTableView>
    <ClientSettings Selecting-AllowRowSelect="true" EnablePostBackOnRowClick="true">
    </ClientSettings>
</telerik:RadGrid>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
    SelectCommand="SELECT [CustomerID], [ContactName], [ContactTitle], [Address] FROM [Customers]">
</asp:SqlDataSource>

C#:
ArrayList selectedItems;
protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        Session.Clear();
    }
}
 
protected void RadGrid1_ItemCommand(object source, GridCommandEventArgs e)
{
 
    if (Session["selectedItems"] == null)
    {
        selectedItems = new ArrayList();
    }
    else
    {
        selectedItems = (ArrayList)Session["selectedItems"];
    }
    if (e.CommandName == "RowClick")
    {
        GridDataItem dataItem = (GridDataItem)e.Item;
        string customerID = dataItem.OwnerTableView.DataKeyValues[dataItem.ItemIndex]["CustomerID"].ToString();
        if (dataItem.Selected)
        {
            selectedItems.Add(customerID);
            Session["selectedItems"] = selectedItems;
        }
        else
        {
            selectedItems.Remove(customerID);
            Session["selectedItems"] = selectedItems;
        }
    }
 
}
protected void RadGrid1_PreRender(object sender, EventArgs e)
{
    if (Session["selectedItems"] != null)
    {
        ArrayList selectedItems = (ArrayList)Session["selectedItems"];
        Int16 stackIndex;
        for (stackIndex = 0; stackIndex <= selectedItems.Count - 1; stackIndex++)
        {
            string curItem = selectedItems[stackIndex].ToString();
            foreach (GridItem item in RadGrid1.MasterTableView.Items)
            {
                if (item is GridDataItem)
                {
                    GridDataItem dataItem = (GridDataItem)item;
                    if (curItem.Equals(dataItem.OwnerTableView.DataKeyValues[dataItem.ItemIndex]["CustomerID"].ToString()))
                    {
                        dataItem.Selected = true;
                        break;
                    }
                }
            }
        }
    }
}
 
 
protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e)
{
    if (e.Item is GridHeaderItem)
    {
        GridHeaderItem headerItem = (GridHeaderItem)e.Item;
        CheckBox chk = (CheckBox)headerItem["ClientSelectColumn"].Controls[0];
        if (chk.Checked)
        {
            GridDataItem dataItem = (GridDataItem)e.Item;
            string customerID = dataItem.OwnerTableView.DataKeyValues[dataItem.ItemIndex]["CustomerID"].ToString();
            if (dataItem.Selected)
            {
                selectedItems.Add(customerID);
                Session["selectedItems"] = selectedItems;
            }
        }
    }
}
 
protected void Button1_Click(object sender, EventArgs e)
{
    if (Session["selectedItems"] != null)
    {
        ArrayList selectedItems = (ArrayList)Session["selectedItems"];
        Int16 stackIndex;
        for (stackIndex = 0; stackIndex <= selectedItems.Count - 1; stackIndex++)
        {
            RadGrid1.AllowPaging = false;
            RadGrid1.Rebind();
            string curItem = selectedItems[stackIndex].ToString();
            foreach (GridItem item in RadGrid1.MasterTableView.Items)
            {
                if (item is GridDataItem)
                {
                    GridDataItem dataItem = (GridDataItem)item;
                    if (curItem.Equals(dataItem.OwnerTableView.DataKeyValues[dataItem.ItemIndex]["CustomerID"].ToString()))
                    {
 
                        dataItem.Selected = true;
                        Response.Write(curItem);//Datakey value of the selcted items
                        Response.Write("<br/>");
                        break;
                    }
                }
            }
        }
    }
    RadGrid1.AllowPaging = true;
    RadGrid1.Rebind();
}

Thanks,
Shinu
Tags
Grid
Asked by
Kjell
Top achievements
Rank 1
Iron
Iron
Answers by
Shinu
Top achievements
Rank 2
Kjell
Top achievements
Rank 1
Iron
Iron
Share this question
or