Получить список DataKeyValues ​​из RadGridView с помощью LINQ - PullRequest
0 голосов
/ 07 ноября 2011

Я использую Telerik RadGrid и у меня есть GridTemplateColumn с уникальным именем «ChangeAddr». Обычно пользователь проверяет один или несколько полей, а затем нажимает кнопку «Изменить адрес», чтобы пользователь мог изменить адрес для выбранных строк / продуктов.

Идентификатор флажка - chkChangeAddr. DataKeyName - это OrderProductID.

Теперь вот код, который я имею, когда пользователь нажимает кнопку:

var OrderProductIDs = (from GridDataItem item in rgShipProducts.Items
                               where ((CheckBox)item.FindControl("chkChangeAddr")).Checked
                               select int.Parse(rgShipProducts.MasterTableView.DataKeyValues[item.ItemIndex]["OrderProductID"].ToString())).ToList();

Однако, это ничего не возвращает.

Если это поможет, у меня есть событие для OnItemDataBound, где я могу успешно извлечь DataKeyValue, используя этот же фрагмент:

rgShipProducts.MasterTableView.DataKeyValues[item.DataSetIndex]["OrderProductID"].ToString()

Так что, похоже, я не "получаю доступ" к каждому предмету или чему-то еще. Я сделал это с обычными ListViews, но никогда не на RadGrid. Любая помощь будет принята с благодарностью.

Спасибо, Andrew

1 Ответ

2 голосов
/ 08 ноября 2011

попробуйте с кодом ниже.

List<GridDataItem> Items = (from item in rgShipProducts.MasterTableView.Items.Cast<GridDataItem>()
                                where  ((CheckBox)item.FindControl("chkChangeAddr")).Checked
                                select item).ToList();

    if (Items.Count > 0)
    {
        string strkey = Items[0].GetDataKeyValue("ID").ToString();
    }
...