0

我有这个ASP:GridView,我似乎无法ASP:GridView在我的代码隐藏 ascx 文件中声明其中的 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 外部并且它工作得很好。

任何形式的帮助表示赞赏

4

1 回答 1

1

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

如何在 GridView 的 TemplateField 中找到控件?

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;
    }
}
于 2013-10-23T20:20:08.190 回答