0

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

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

在 JavaScript 中,我从模式返回一个值,并HiddenField为该特定行设置该值,“hiddenField”是HiddenField.

document.getElementById(hiddenField).value = settings;

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

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

我怎样才能捕捉到这个价值?该行的 HiddenField 控件中的每个值对该行都是唯一的。我也愿意在每行的基础上保存在这个字段中的临时数据的替代存储,只要记住数据是从 JavaScript 事件返回的。

4

1 回答 1

2

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

<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          
   }            
}
于 2013-11-07T03:51:02.770 回答