我可以获取gridview的选定索引,但我想要获取实际在表格中的数据。 我想选择网格中的一行,并能够访问“客户端ID”列的实际数据值。 网格正常工作,我能够访问SelectedIndexChanged事件。 但我一直在尝试找到一种获取在表格中显示信息的方法,但还没有成功。任何帮助将不胜感激。
再次强调,我需要从代码后台访问在网格中显示的所有数据。
再次强调,我需要从代码后台访问在网格中显示的所有数据。
数据键(data keys)就是为此而设计的。只需将要访问的列指定为数据键,就像下面示例中所示。
<telerik:RadGrid ID="RadGrid1" runat="server" ...>
<MasterTableView DataKeyNames="Column1, Column2, Column3" ...>
...
</MasterTableView>
</telerik>
在标记中分配数据键之后,您可以通过行或使用SelectedValues
属性在代码后端访问它们。
if (RadGrid1.SelectedItems.Count > 0)
{
//access a string value
string column1 = RadGrid1.SelectedValues["Column1"].ToString();
//access an integer value
int column2 = (int)RadGrid1.SelectedValues["Column2"];
}
foreach (GridDataItem item in RadGrid1.MasterTableView.Items)
{
if (item.selected == true)
string mydata = item["ColumnName"].Text;
}
RadGrid1.SelectedItems
来获取所选项目。我建议您阅读更多的文档资料。 - James Johnson如James Johnson所建议,使用DataKeys。在SelectedIndexChanged
事件中,您无法访问GridDataItem
的DataItem
属性,因为它将为空。根据Telerik文档,“仅当网格绑定到数据时,才可用DataItem对象。”
当DataItem
可用时,例如在ItemCreated
事件中,您可以将其转换为原始数据类型MyType
:
private void RadGrid_ItemCreated(object sender, Telerik.Web.UI.GridItemEventArgs e)
{
if ((e.Item is GridDataItem)) {
GridDataItem gridDataItem = (GridDataItem)e.Item;
MyType dataItem = (MyType)gridDataItem.DataItem;
}
}