I have a radgrid in which I hide Id column. Now I want to get its value on linkbutton click. If column is visible it work fine but
it show blank value when it is invisible. my code is
protected void RadGrid1_ItemCommand(object sender, Telerik.Web.UI.GridCommandEventArgs e)
{
if (e.CommandName == "Detail")
{
GridDataItem dataItm = e.Item as GridDataItem;
string value = dataItm["Id"].Text;
}
}
Please try with the below code snippet.
ASPX
<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="false" OnNeedDataSource="RadGrid1_NeedDataSource"
OnItemCommand="RadGrid1_ItemCommand">
<MasterTableView DataKeyNames="ID">
<Columns>
<telerik:GridBoundColumn DataField="ID" UniqueName="ID" HeaderText="ID">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="ID" UniqueName="ID1" HeaderText="ID" Visible="false">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="ID" UniqueName="ID2" HeaderText="ID" Display="false">
</telerik:GridBoundColumn>
<telerik:GridTemplateColumn>
<ItemTemplate>
<asp:Button ID="Button1" runat="server" CommandName="Detail" CommandArgument='<%# Eval("ID") %>' />
</ItemTemplate>
</telerik:GridTemplateColumn>
</Columns>
</MasterTableView>
</telerik:RadGrid>
ASPX.CS
protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
dynamic data = new[] {
new { ID = 1, Name ="Name1"},
new { ID = 2, Name = "Name2"},
new { ID = 3, Name = "Name3"},
new { ID = 4, Name = "Name4"},
new { ID = 5, Name = "Name5"}
};
RadGrid1.DataSource = data;
}
protected void RadGrid1_ItemCommand(object sender, GridCommandEventArgs e)
{
if (e.CommandName == "Detail")
{
GridDataItem item = e.Item as GridDataItem;
string strID = item.GetDataKeyValue("ID").ToString(); // We are able to get ID field value here
string strID1 = item["ID1"].Text; // We are NOT able to get ID field value here Because column is Visible false
string strID2 = item["ID2"].Text; // We are able to get ID field value here
string strCommandArgument = e.CommandArgument.ToString(); // We are able to get ID field value here
}
}
Please use Display property in place-of Visible property.