【问题标题】:How can I hide asp controls or div tags that are inside a asp:GridView如何隐藏 asp:GridView 中的 asp 控件或 div 标签
【发布时间】:2013-11-02 07:19:17
【问题描述】:

我有这个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 外部并且它工作得很好。

感谢任何形式的帮助

【问题讨论】:

    标签: c# asp.net aspxgridview ascx


    【解决方案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;
        }
    }
    

    【讨论】:

    • @IrishChieftan 是正确的。您不能隐藏嵌套在 GridView、DataGrid、Repeater 或其他 DataSource 绑定到集合的控件中的控件。您必须在外部控件的 ItemDataBound 事件中找到目标控件,然后根据您喜欢的任何逻辑有条件地显示或隐藏它。在设置值之前,请确保您的代码检查以确保“myDiv”(来自上述答案)不为空。否则,如果其他人更改了控件的 ID,您将得到一个空引用异常。
    • 由于某种原因,此代码不起作用,我在 FindControl 参数中有我的链接按钮 ID。方法名称是否需要特定于某些东西?
    • 您能否向我们展示模板中控件的标记以及您的代码示例版本?
    • @IrishChieftan 给你写了一个事件处理程序。您需要将事件绑定到它,否则它不会触发。在 GridView 控件的开始标记中添加 OnRowDataBound="GridView1_RowDataBound"。
    猜你喜欢
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多