【问题标题】:Hidden field value in GridViewGridView 中的隐藏字段值
【发布时间】:2011-02-19 07:29:06
【问题描述】:

如何在 asp.net 的 GridView 中获取隐藏列的值?

【问题讨论】:

  • 您的意思是“如何获取隐藏字段的值”或“如何在 gridview 的每一行中隐藏一些数据,以便在回发时我可以检索它”?
  • 请让您的问题更具体。在哪种情况下您需要访问隐藏字段值?
  • 技术上我忽略了第三个选项:如何隐藏每一行中的一些数据,以便客户端 JS 可以检索它。

标签: c# asp.net gridview


【解决方案1】:

首先在网格视图中选择列并将其设为模板列,如下所示:

<asp:Template Field Header Text="SavingId" Visible="false">
    <ItemTemplate>
        <asp:Label ID = "lblSavingId" runat="server" Text ='<%#Bind(SavingId")%>' />
    </ItemTemplate>
</asp:TemplateField>

之后,在编码方面,您可以轻松地获取值,如下所示:

string id= (gridview1.Rows[i].FindControl("lblSavingId") as label).text;

【讨论】:

    【解决方案2】:

    如果“视图”是您的 GridView:

    HiddenField test = view.Rows[0].Cells[0].FindControl("myHiddenField") as HiddenField
    

    【讨论】:

    • “隐藏”列本身就是 view.Rows[0].Cells[0]
    【解决方案3】:

    我实际上发现 Visible = False 的列不会出现在结果中。

    为了获得所需的行为,我必须将列设置为可见,然后使用设置为“可见性:隐藏;显示:无;”的样式将其隐藏。当我这样做时,我可以通过选择其他一些帖子所指示的列/行来访问列的值。

    如果您使用 DataList,您也可以使用隐藏字段执行相同的操作,但如果您在 GridView 中(从您的帖子中听起来这就是您正在做的事情),您可能需要采取类似的方法。

    【讨论】:

      【解决方案4】:

      如果您在网格视图 itemtemplace 中隐藏了文件,那么您可以通过以下方式找到:

      在item数据绑定事件中:

      if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
      {
          // Find the hidden field   
          HiddenField _hdn =
          (HiddenField)e.Item.FindControl("HiddenField Id Put Here"); 
      }
      

      希望对您有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-31
        • 1970-01-01
        • 1970-01-01
        • 2013-09-12
        • 1970-01-01
        • 1970-01-01
        • 2013-04-06
        • 2010-09-25
        相关资源
        最近更新 更多