Telerik获取选定ID(从Radgrid选定项获取数据)

7
我可以获取gridview的选定索引,但我想要获取实际在表格中的数据。 我想选择网格中的一行,并能够访问“客户端ID”列的实际数据值。 网格正常工作,我能够访问SelectedIndexChanged事件。 但我一直在尝试找到一种获取在表格中显示信息的方法,但还没有成功。任何帮助将不胜感激。
再次强调,我需要从代码后台访问在网格中显示的所有数据。

帮我解决这个问题:http://stackoverflow.com/questions/33822075/cannot-identify-selected-page-in-telerik-grid-i-need-selected-page-to-be-underl - Sachin
http://stackoverflow.com/questions/33822075/cannot-identify-selected-page-in-telerik-grid-i-need-selected-page-to-be-underl - Sachin
3个回答

15

数据键(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"];
}

当你这样做时,变量column1中是什么?这如何获取该列中的数据?非常感谢您的帮助。 - joncodo
所以我在我的标记上有DataKeyNames="ClientID, Gender, First Name",并且在我的代码后台中... var column = rgSearchResults.SelectedValues["ClientID"].ToString;??但这对我不起作用。错误显示“对象引用未设置到对象的实例”。 - joncodo
@JamesJohnson 我正在尝试创建一个foreach循环来读取所有SelectedItems,你有什么建议吗? - Michel Ayres
@Michel:你应该可以轻松遍历“SelectedItems”集合,有问题吗? - James Johnson
如何在实现分页时从RadGrid DataKeyName获取所有项值 - Michel Ayres
显示剩余6条评论

1

1
-1 这不是一个好的方法来查找所选项目或获取所选值。您应该使用数据键来获取值,而您可以使用 RadGrid1.SelectedItems 来获取所选项目。我建议您阅读更多的文档资料。 - James Johnson

0

James Johnson所建议,使用DataKeys。在SelectedIndexChanged事件中,您无法访问GridDataItemDataItem属性,因为它将为空。根据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;
    }
}

1
我认为这个做法有些不对。OP 想知道如何从网格中的“selected”项获取数据。再次强调,这就是数据键的作用。 - James Johnson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接