使用 LINQ 从 RadGridView 获取 DataKeyValue 列表

发布于 2024-12-14 08:35:33 字数 854 浏览 0 评论 0原文

我正在使用 Telerik RadGrid 并拥有一个具有唯一名称“ChangeAddr”的 GridTemplateColumn。基本上,用户会选中一个或多个框,然后单击“更改地址”按钮,以便用户可以更改所选行/产品的地址。

复选框 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 上完成过。任何帮助将不胜感激。

谢谢, 安德鲁

I'm using a Telerik RadGrid and have a GridTemplateColumn with the unique name "ChangeAddr". Basically, a user would check one or more boxes and then click a "Change Address" button so the user could change the address for the selected rows/products.

The checkbox id is chkChangeAddr.
The DataKeyName is OrderProductID.

Now, here's the code I have for when the user clicks the button:

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();

However, it doesn't return anything.

If it helps, I have an event for OnItemDataBound where I can successfully retrieve the DataKeyValue using this same snippet:

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

So, it seems like I'm not "accessing" each item or something. I've done this with regular ListViews, but never on a RadGrid. Any help would be greatly appreciated.

Thanks,
Andrew

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

彩虹直至黑白 2024-12-21 08:35:33

尝试使用下面的代码。

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();
    }

try with below code.

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();
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文