Asp.net 从DataList的ItemTemplate动态隐藏元素

Asp.net 从DataList的ItemTemplate动态隐藏元素,asp.net,datalist,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 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>


谢谢。

您需要处理项目数据绑定事件。然后找到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;
         }
     }
}

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

如果您这样做,您甚至可能不需要代码

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