如何隐藏asp:GridView中的asp控件或div标签

时间:2013-10-23 20:15:16

标签: c# asp.net aspxgridview ascx

我有这个ASP:GridView我似乎无法在我的代码隐藏ascx文件中声明这个ASP:GridView内的asp控件或div标签。

<asp:GridView runat="server" ID="siteMembersView" AllowPaging="True" 
            ShowHeader="False" EnableModelValidation="True" AutoGenerateColumns="false" CssClass="membership-gridview" Width="100%" CellPadding="0" CellSpacing="0">
        <Columns>
            <asp:TemplateField>
            <ItemTemplate>

             //content

            </ItemTemplate>
            </asp:TemplateField>
        </Columns>
</asp:GridView>

我正在尝试Mydiv.Visible = falseLinkButton.Visible = False 但它无法找到ID。我正在使用runat="server"。我认为问题在于它在GridView内部,因为我试图把它放在GridView之外,它运行得很好。

感谢任何形式的帮助

1 个答案:

答案 0 :(得分:1)

使用FindControl方法访问您的控件,然后您可以应用逻辑来切换每个控件的可见性:

How to find control in TemplateField of GridView?

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    HtmlGenericControl myDiv;
    LinkButton myLinkButton;

    if(e.Row.RowType == DataControlRowType.DataRow)
    {
        myDiv = (HtmlGenericControl)e.Row.FindControl("myDiv") 
            as HtmlGenericControl;
        myDiv.Visible = false;

        myLinkButton = (LinkButton )e.Row.FindControl("myLinkButton") 
            as LinkButton;
        myLinkButton.Visible = false;
    }
}