【问题标题】:Accessing dynamically created HiddenField value in Code Behind在后面的代码中访问动态创建的 HiddenField 值
【发布时间】:2013-11-07 11:51:02
【问题描述】:

我在 GridView 的 OnRowDataBound 事件上创建了一个 HiddenField

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 事件返回的。

【问题讨论】:

    标签: c# javascript asp.net


    【解决方案1】:

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

    <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          
       }            
    }
    

    【讨论】:

    • 谢谢,尽管我使用的是 TextBox,但我会将其标记为答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多