使用LINQ从RadGridView获取DataKeyValues列表
本文关键字:DataKeyValues 列表 获取 RadGridView LINQ 使用 | 更新日期: 2023-09-27 18:13:47
我使用的是Telerik RadGrid,并具有唯一名称"ChangeAddr"的gridtemplatecoluml。基本上,用户将选中一个或多个框,然后单击"更改地址"按钮,这样用户就可以更改所选行/产品的地址。
复选框id为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()
所以,看起来我没有"访问"每个项目或其他东西。我用常规的listview做过这个,但从来没有在RadGrid上做过。如有任何帮助,我将不胜感激。
谢谢,安德鲁。
试试下面的代码。
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();
}