隐藏视图内的数据
本文关键字:数据 视图 隐藏 | 更新日期: 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