隐藏视图内的数据

本文关键字:数据 视图 隐藏 | 更新日期: 2023-09-27 18:15:17

我有一个数据列表,在它里面,我在标签中绑定了一个值,像这样

  <asp:Label ID="hf1" runat="server" Visible="false"><%# Eval("DeptId")%></asp:Label> 

我怎么能得到标签的值在datalist EditCommand?

隐藏视图内的数据

使用HiddenField代替Visible="false"标签。您可以通过FindControl(id)方法在DataList中获取控件的引用。

标记:

 <asp:HiddenField ID="HiddenField1" runat="server" Value='<%# Eval("DeptId") %>' />

EditCommand中的代码:

HiddenField h=e.Item.FindControl("HiddenField1") as HiddenField;

Visible="False"将不呈现任何内容到页面。使用<asp:hidden>控件代替:

 <asp:hidden ID="hf1" runat="server" Text='<%# Eval("DeptId")%>' /> 

使用Label,您还可以获得EditCommand事件中的控件,如下所示:

protected void dlData_EditCommand(object source, DataListCommandEventArgs e)
{
    Label hf1 = (Label)e.Item.FindControl("hf1");//Any control you can find here
}

如果你需要过滤数据项,只在这种情况下,只需输入一个条件:

protected void dlData_EditCommand(object source, DataListCommandEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item)
    {
        Label hf1 = (Label)e.Item.FindControl("hf1");
    }
}

您应该使用style(css)来隐藏该元素。这样它就可以在你想要找到隐藏字段值的文件后面的代码中呈现。只使用

  <asp:Label ID="hf1" runat="server"  style="display:none"><%# Eval("DeptId")%></asp:Label> 

代替

  <asp:Label ID="hf1" runat="server" Visible="false"><%# Eval("DeptId")%></asp:Label> 

那么一切都会很好。谢谢Gourav