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...
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
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
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.
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:
C#:
Thanks,
Shinu
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