I have RadGrid on web page with ckeckbox inside it.
I want to fetch "datakey value" of multiple selected rows using checkbox at client side on button(which is outside RadGrid) click.
I tried below code but its not working:
I want to fetch "datakey value" of multiple selected rows using checkbox at client side on button(which is outside RadGrid) click.
I tried below code but its not working:
<telerik:RadGrid ID=
"RadGrid1"
EnableViewState=
"false"
runat=
"server"
AllowPaging=
"true"
OnItemDataBound=
"RadGrid1_ItemDataBound"
AllowSorting=
"False"
AllowFilteringByColumn=
"true"
GridLines=
"None"
OnInit=
"RadGrid1_Init"
OnDeleteCommand=
"RadGrid1_DeleteCommand"
>
<ItemStyle Wrap=
"false"
></ItemStyle>
<MasterTableView AllowMultiColumnSorting=
"true"
TableLayout=
"Fixed"
DataKeyNames=
"Id"
ClientDataKeyNames=
"Id"
>
<Columns>
<telerik:GridTemplateColumn UniqueName=
"SelectRow"
HeaderText=
"Select"
AllowFiltering=
"false"
HeaderStyle-Width=
"20px"
>
<ItemTemplate>
<telerik:RadScriptBlock ID=
"RadScriptBlock1"
runat=
"server"
>
<script type=
"text/javascript"
>
function
getDataKeyValues(chk) {
//find datakeyvalue of selected row
var
masterTable = $find(
"<%=RadGrid1.ClientID%>"
).get_masterTableView();
var
count = masterTable.get_dataItems().length;
var
checkbox;
var
item;
for
(
var
i = 0; i < count; i++) {
item = masterTable.get_dataItems()[i];
checkbox = item.findElement(
"CheckBox1"
);
if
(checkbox.checked) {
var
dataKeyValue = item.getDataKeyValue(
"Id"
);
//alert(dataKeyValue);
var
hiddenValue = document.getElementById(
"hdn_Id"
);
//get Id inside Hidden field
hiddenValue.value = dataKeyValue;
alert(hiddenValue.value);
}
}
}
</script>
</telerik:RadScriptBlock>
<asp:CheckBox ID=
"CheckBox1"
runat=
"server"
/>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridNumericColumn UniqueName=
"Id"
DataField=
"Id"
HeaderText=
"Id"
HeaderStyle-Width=
"20px"
AllowFiltering=
"False"
>
</telerik:GridNumericColumn>
<telerik:GridBoundColumn DataField=
"Description"
HeaderText=
"Description"
AndCurrentFilterFunction=
"Contains"
FilterListOptions=
"AllowAllFilters"
HeaderStyle-Width=
"100px"
>
</telerik:GridBoundColumn>
</Columns>
</MasterTableView>
<PagerStyle AlwaysVisible=
"true"
Mode=
"NumericPages"
></PagerStyle>
<ClientSettings>
<Selecting AllowRowSelect=
"true"
/>
<ClientEvents OnCommand=
"RadGrid1_Command"
OnRowDataBound=
"RadGrid1_RowDataBound"
></ClientEvents>
</ClientSettings>
</telerik:RadGrid>
<br />
<asp:HiddenField ID=
"hdn_Id"
runat=
"server"
/>
<asp:Button ID=
"btnPrint"
runat=
"server"
Text=
"Print"
CssClass=
"btn btn-primary"
OnClick=
"btnPrint_Click"
/>
protected
void
RadGrid1_ItemDataBound(
object
sender, GridItemEventArgs e)
{
if
(e.Item
is
GridDataItem)
{
GridDataItem item = (GridDataItem)e.Item;
CheckBox chk = (CheckBox)item.FindControl(
"CheckBox1"
);
chk.Attributes.Add(
"onclick"
,
"getDataKeyValues(this);"
);
}
}
protected
void
btnPrint_Click(
object
sender, EventArgs e)
{
funTax();
foreach
(GridDataItem item
in
RadGrid1.MasterTableView.Items)
{
CheckBox check = (CheckBox)item.FindControl(
"CheckBox1"
);
if
(check.Checked ==
true
)
{
string
itemId = hdn_Id.Value;
//Response.Redirect("~/Test.aspx?Id=" + itemId);
}
}
}