Hi,
I am trying to get a column value of a selected row in the radgrid.
I am using "DataKeyValues" in my C# code to retrieve the value. But it always returns an empty string. When I debug I can see the key but the value for that is empty.
Following is my code. Please let me know if I am missing something.
Thank you,
Lahiru
ASPX page
<telerik:RadGrid ID="gridDevices" runat="server" Width="900" AllowSorting="true"
AllowCustomPaging="True" AllowPaging="True" AllowFilteringByColumn="true"
PageSize="10" AllowMultiRowSelection="true" OnItemCommand="RadGrid1_ItemCommand">
<MasterTableView DataKeyNames="DeviceID" ClientDataKeyNames="DeviceID">
<Columns>
<telerik:GridBoundColumn DataField="DeviceID" Visible="false" UniqueName="DeviceID">
</telerik:GridBoundColumn>
<telerik:GridTemplateColumn HeaderText="IP Address"
ShowFilterIcon="false" AutoPostBackOnFilter="true" UniqueName="IPAddress" DataField="IPAddress" SortExpression="IPAddress">
<ClientItemTemplate>
<span title="View device web page"><a href="http://#=IPAddress#" target="_blank">#=IPAddress#</a>
</span>
</ClientItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn Visible="true" HeaderText="MAC Address" ShowFilterIcon="false" AutoPostBackOnFilter="true" UniqueName="MACAddress" DataField="MACAddress" SortExpression="MACAddress">
<ClientItemTemplate>
<span title="#=MACAddress#> #=MACAddress# </span>
</ClientItemTemplate>
</telerik:GridTemplateColumn>
</Columns>
</MasterTableView>
<PagerStyle Mode="Slider" AlwaysVisible="true" ></PagerStyle>
<ClientSettings>
<DataBinding Location="SupplyGridData.asmx" SelectMethod="GetDeviceRecords">
</DataBinding>
<ClientEvents OnDataBinding="DevicesGrid_DataBinding" >
</ClientEvents>
<Selecting AllowRowSelect="True"></Selecting>
</ClientSettings>
</telerik:RadGrid>
C# Code
protected void RadGrid1_ItemCommand(object source, GridCommandEventArgs e)
{
if (e.Item is GridDataItem)
{
GridDataItem dataItem = (GridDataItem)e.Item;
string deviceID = dataItem.OwnerTableView.DataKeyValues[dataItem.ItemIndex]["DeviceID"].ToString();
}
}
I am trying to get a column value of a selected row in the radgrid.
I am using "DataKeyValues" in my C# code to retrieve the value. But it always returns an empty string. When I debug I can see the key but the value for that is empty.
Following is my code. Please let me know if I am missing something.
Thank you,
Lahiru
ASPX page
<telerik:RadGrid ID="gridDevices" runat="server" Width="900" AllowSorting="true"
AllowCustomPaging="True" AllowPaging="True" AllowFilteringByColumn="true"
PageSize="10" AllowMultiRowSelection="true" OnItemCommand="RadGrid1_ItemCommand">
<MasterTableView DataKeyNames="DeviceID" ClientDataKeyNames="DeviceID">
<Columns>
<telerik:GridBoundColumn DataField="DeviceID" Visible="false" UniqueName="DeviceID">
</telerik:GridBoundColumn>
<telerik:GridTemplateColumn HeaderText="IP Address"
ShowFilterIcon="false" AutoPostBackOnFilter="true" UniqueName="IPAddress" DataField="IPAddress" SortExpression="IPAddress">
<ClientItemTemplate>
<span title="View device web page"><a href="http://#=IPAddress#" target="_blank">#=IPAddress#</a>
</span>
</ClientItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn Visible="true" HeaderText="MAC Address" ShowFilterIcon="false" AutoPostBackOnFilter="true" UniqueName="MACAddress" DataField="MACAddress" SortExpression="MACAddress">
<ClientItemTemplate>
<span title="#=MACAddress#> #=MACAddress# </span>
</ClientItemTemplate>
</telerik:GridTemplateColumn>
</Columns>
</MasterTableView>
<PagerStyle Mode="Slider" AlwaysVisible="true" ></PagerStyle>
<ClientSettings>
<DataBinding Location="SupplyGridData.asmx" SelectMethod="GetDeviceRecords">
</DataBinding>
<ClientEvents OnDataBinding="DevicesGrid_DataBinding" >
</ClientEvents>
<Selecting AllowRowSelect="True"></Selecting>
</ClientSettings>
</telerik:RadGrid>
C# Code
protected void RadGrid1_ItemCommand(object source, GridCommandEventArgs e)
{
if (e.Item is GridDataItem)
{
GridDataItem dataItem = (GridDataItem)e.Item;
string deviceID = dataItem.OwnerTableView.DataKeyValues[dataItem.ItemIndex]["DeviceID"].ToString();
}
}