动态隐藏DataList的ItemTemplate中的元素

时间:2009-07-10 01:51:36

标签: asp.net datalist

如何访问asp datalist控件的itemtemplate部分中的控件(在我的情况下为linkbutton)?例如:我想将linkbutton设置为visible false,但无法弄清楚如何从代码隐藏中获取对它的引用。

示例代码:

<asp:datalist id="datalist1" runat="server">
<ItemTemplate>
   <asp:label id="label1" runat="server"></asp:label>
   <asp:linkbutton id="editButton" runat="server" text="Edit"></asp:linkbutton>
</ItemTemplate>
</asp:datalist>

感谢。

2 个答案:

答案 0 :(得分:3)

您需要处理项目数据绑定事件。然后找到linkbutton并在其中设置其属性如下:

protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
     LinkButton lb=e.Item.FindControl("editButton") as LinkButton;
     if(lb!=null){
         if(some condition){
            lb.Visible=false;
         }
     }
}

编辑: - 您可以获得有关在运行时自定义数据列表的更多信息here

答案 1 :(得分:0)

如果你做这样的事情,你甚至可能不需要代码隐藏

<asp:datalist id="datalist1" runat="server">
<ItemTemplate>
   <asp:label id="label1" runat="server"></asp:label>
   <asp:linkbutton id="editButton" runat="server" text="Edit" Visible='<%# Eval("SomeBooleanDataElement") %>'></asp:linkbutton>
</ItemTemplate>
</asp:datalist>