You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Telerik RadGrid如何将数据库数据存入隐藏字段并正确取值

方案1:使用RadGrid内置DataKey存储(最推荐)

这是Telerik RadGrid存储隐藏字段的官方标准方案,无需额外定义列,数据不会丢失也不会冗余渲染到前端:

  1. 在aspx的RadGrid控件标签中添加DataKeyNames属性,声明需要存储的隐藏字段:
<telerik:RadGrid ID="RadGridViewCustomer" runat="server" 
    DataKeyNames="CustomerId,CustomerSecondaryId">
    <!-- 其余原有配置保持不变 -->
</telerik:RadGrid>
  1. CodeBehind中直接通过GetDataKeyValue方法取值:
string customerSecondaryId = dataItem.GetDataKeyValue("CustomerSecondaryId")?.ToString();

方案2:修正隐藏列定义

你之前取值为空的核心原因是用错了列类型:GridClientSelectColumn是专门用于渲染行多选复选框的特殊列,不会绑定数据源字段。改用GridBoundColumn即可:

  1. aspx中定义正确的隐藏绑定列:
<telerik:GridBoundColumn 
    DataField="CustomerSecondaryId" 
    UniqueName="CustomerSecondaryId" 
    Visible="false" />
  1. 原有取值逻辑无需修改即可正常拿到数据:
string customerSecondaryId = dataItem["CustomerSecondaryId"].Text;

方案3:模板列内嵌隐藏字段(如需前端JS也能访问该值时选用)

如果需要前端JavaScript也能读取该字段,可以在模板列中嵌入ASP.NET隐藏控件:

  1. aspx中添加模板列:
<telerik:GridTemplateColumn Visible="false">
    <ItemTemplate>
        <asp:HiddenField ID="hfCustomerSecondaryId" runat="server" 
            Value='<%# Eval("CustomerSecondaryId") %>' />
    </ItemTemplate>
</telerik:GridTemplateColumn>
  1. CodeBehind中通过控件查找取值:
HiddenField hf = (HiddenField)dataItem.FindControl("hfCustomerSecondaryId");
string customerSecondaryId = hf.Value;

内容的提问来源于stack exchange,提问作者Greg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 20:36:03