从服务器端的 GridTemplateColumn 检索值 (Telerik RadGrid)

发布于 2024-12-09 09:38:44 字数 689 浏览 0 评论 0原文

我的 aspx 页面中有以下代码(简化):

<telerik:RadGrid ID="rgd_grid" runat="server">
<MasterTableView>
<Columns> 
     <telerik:GridTemplateColumn UniqueName="Unique" HeaderText="Header" DataField="dataField">
     <ItemTemplate>
          <%# DataBinder.Eval(Container.DataItem, "expression") %>
     </ItemTemplate>
     </telerik:GridTemplateColumn> 
</Columns>
</MasterTableView>

我只需要在网格中执行一个循环来检索代码隐藏中单元格的值,但我找不到任何方法来获取“ Eval”表达式...我尝试了以下操作:

rgd_grid.MasterTableView.Items[0]["Unique"].Text;

但是文本属性为空,而其他所有属性都是正确的。事实上,我已经尝试了很多其他的事情,但这似乎是最接近目标的。

问候,我感谢每一个帮助!

I have the following code in my aspx page (simplified):

<telerik:RadGrid ID="rgd_grid" runat="server">
<MasterTableView>
<Columns> 
     <telerik:GridTemplateColumn UniqueName="Unique" HeaderText="Header" DataField="dataField">
     <ItemTemplate>
          <%# DataBinder.Eval(Container.DataItem, "expression") %>
     </ItemTemplate>
     </telerik:GridTemplateColumn> 
</Columns>
</MasterTableView>

I just need to do a loop in the grid to retrieve the values of the cells in the code-behind, but I've find no way to get the value in the "Eval" expression... I've try the following:

rgd_grid.MasterTableView.Items[0]["Unique"].Text;

But the text property is empty, while all the others are correct. Actually, I've tried a lot of other things, but this seems to be the most close to the objective.

Regards, I appreciate every help!

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

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

发布评论

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

评论(3

北恋 2024-12-16 09:38:44

您确定返回的项目不是标题或类似的内容吗?我认为标题包含在结果中,但可能是错误的。添加如下检查:

var item = rgd_grid.MasterTableView.Items[0] as GridDataItem;
if (item != null)
    string text = item["Unique"].Text;

如果这不起作用,您可以随时使用模板中的 Label 控件,并通过 ID 查找控件。

Are you sure the item returned is not the header or something like that? I think the header is included in the results, but could be wrong. Add a check like:

var item = rgd_grid.MasterTableView.Items[0] as GridDataItem;
if (item != null)
    string text = item["Unique"].Text;

If that doesn't work, you can always resort to using a Label control within the template, and finding the control by ID.

幼儿园老大 2024-12-16 09:38:44

您应该使用数据键从网格中检索值。

您可以使用 MasterTableView 上的 DataKeyNames 属性来指定所需的列,如下所示:

<telerik:RadGrid ID="RadGrid1" runat="server" ...>
    <MasterTableView DataKeyNames="Col1, Col2, Col3" ...>

然后在代码隐藏中:

string col1 = RadGrid1.Items[0].GetDataKeyValue("Col1").ToString();

You should be using datakeys to retrieve values from the grid.

You can use the DataKeyNames property on the MasterTableView to specify the columns you need, like this:

<telerik:RadGrid ID="RadGrid1" runat="server" ...>
    <MasterTableView DataKeyNames="Col1, Col2, Col3" ...>

And then in the code-behind:

string col1 = RadGrid1.Items[0].GetDataKeyValue("Col1").ToString();
浮世清欢 2024-12-16 09:38:44

这是另一种方法,因为我使用 DataBinder 来获取文字内容并显示它:

 protected void RadGrid_OnItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
    {
        if (e.Item is GridDataItem)
        {
            GridDataItem dataItem = e.Item as GridDataItem;
            var test = DataBinder.Eval(dataItem.DataItem, "Column").ToString();                
        }
    }

Here's another way, as I used the DataBinder to get my literal content as well as display it:

 protected void RadGrid_OnItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
    {
        if (e.Item is GridDataItem)
        {
            GridDataItem dataItem = e.Item as GridDataItem;
            var test = DataBinder.Eval(dataItem.DataItem, "Column").ToString();                
        }
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文