我有一个数据列表,在其中我绑定一个像这样的标签中的值
<asp:Label ID="hf1" runat="server" Visible="false"><%# Eval("DeptId")%></asp:Label>
如何在datalist EditCommand中获取label的值?
答案 0 :(得分:2)
使用HiddenField
代替标签Visible="false"
。您可以通过FindControl(id)
方法获取DataList中的控件引用。
标记:
<asp:HiddenField ID="HiddenField1" runat="server" Value='<%# Eval("DeptId") %>' />
EditCommand中的代码:
HiddenField h=e.Item.FindControl("HiddenField1") as HiddenField;
答案 1 :(得分:0)
Visible="False"
不会向网页呈现任何内容。改为使用<asp:hidden>
控件:
<asp:hidden ID="hf1" runat="server" Text='<%# Eval("DeptId")%>' />
答案 2 :(得分:0)
使用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");
}
}
答案 3 :(得分:0)
你应该使用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