Telerik получает выбранный идентификатор (Получить данные из выбранного элемента Radgrid) - PullRequest
7 голосов
/ 14 сентября 2011

Я могу получить выбранный индекс вида сетки, но я хочу получить фактические данные, которые находятся внутри сетки. Я хочу выбрать строку в сетке и получить доступ к фактическому значению данных в столбце «Идентификатор клиента». Сетка работает нормально, и я могу получить доступ к событию SelectedIndexChanged. Я тогда безуспешно пытался найти способ получить информацию, которая отображается в сетке. Любая помощь будет принята с благодарностью.

Опять же, мне нужно получить доступ ко всем данным, отображаемым в сетке из кода.

Ответы [ 3 ]

15 голосов
/ 14 сентября 2011

Для этого предназначены ключи данных.Просто укажите столбцы данных, к которым вы хотите получить доступ, в качестве ключей данных, как в примере, показанном ниже.

<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"];
}
1 голос
/ 14 сентября 2011

Вы можете сделать это так:

foreach (GridDataItem item in RadGrid1.MasterTableView.Items)
{
    if (item.selected == true)
        string mydata = item["ColumnName"].Text;
}

Я рекомендую вам прочитать документацию на этом сайте http://www.telerik.com/help/aspnet/grid/grdaccessingcellsandrows.html; это наверняка вам очень поможет с компонентами Telerik.

0 голосов
/ 14 сентября 2011

Используйте DataKeys как Джеймс Джонсон предложил. Вы не можете получить доступ к DataItem свойству события GridDataItem in SelectedIndexChanged. Это будет ноль. Согласно документации Telerik «Объект DataItem доступен только тогда, когда сетка привязывается к данным.»

Когда доступно DateItem, как в случае 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;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...