在datalist里面的hiddenview

时间:2011-11-22 05:10:34

标签: c# asp.net

我有一个数据列表,在其中我绑定一个像这样的标签中的值

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

如何在datalist EditCommand中获取label的值?

4 个答案:

答案 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