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); } } }