我在GridView的HiddenField
事件中创建了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事件返回的。
答案 0 :(得分: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
}
}