访问代码隐藏中动态创建的隐藏字段值

Accessing dynamically created HiddenField value in Code Behind

本文关键字:隐藏 字段 创建 动态 代码 访问      更新时间:2023-09-26

我有一个HiddenField,我正在 GridView 的OnRowDataBound事件上创建:

var hF1 = new HiddenField();
e.Row.Cells[10].Controls.Add(hF1);

在 JavaScript 中,我从模态返回一个值,并在该特定行的HiddenField上设置值,"hiddenField"是HiddenField的 ClientID。

document.getElementById(hiddenField).value = settings;

现在,我有一个 Button.OnClick 事件,我需要在其中捕获该数据以进行进一步处理,但我无法确定如何检索特定行的数据。

foreach (SPGridViewRow dataRow in gvItems.Rows)
{
    if (dataRow.RowType != DataControlRowType.DataRow) continue;
    var mySettings = dataRow.... ?

如何获取该值? 行的 HiddenField 控件中的每个值对于该行都是唯一的。 我也愿意以每行的方式在此字段中保存的临时数据的替代存储,请记住,数据是从 JavaScript 事件返回的。

与其在

代码后面创建隐藏字段,我会将其设置为模板列,如下所示:

<asp:TemplateField>
   <ItemTemplate>
      <asp:HiddenField ID="myHiddenFieldID" runat="server" 
             Value='<%# Eval("SomeJSCLientID") %>' />
</ItemTemplate>

但这可能不是必需的,您可以通过这样做找到隐藏的控制:

foreach (GridViewRow row in grid.Rows)
{
   if (((HiddenField)row.FindControl("myHiddenFieldID")).Value)
   {
    //do your thing          
   }            
}