【问题标题】:How to hide the Edit column in GridView?如何隐藏 GridView 中的编辑列?
【发布时间】:2026-02-16 22:50:02
【问题描述】:

使用GridView1.Columns(0).Visible = False 隐藏fld1(第一列),但我想隐藏每一行旁边的编辑选项。你是怎么做到的?

<asp:SqlDataSource ID="SqlDataSource1" runat="server"
                   ConnectionString="<%$ ConnectionStrings:AttendanceDBConnectionString %>"
                   SelectCommand="SELECT [fld1], [fld2], [fld3],   [fld4], [fld5] FROM [fld6] ORDER BY [fld1], [fld2], [fld3]">
</asp:SqlDataSource>

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"
              AutoGenerateEditButton="True" DataSourceID="SqlDataSource1" PageSize="100">
</asp:GridView>

Protected Sub GridView1_DataBound(sender As Object, e As EventArgs) Handles GridView1.DataBound
    GridView1.Columns(0).Visible = False
End Sub

【问题讨论】:

    标签: asp.net vb.net datagrid


    【解决方案1】:

    要隐藏DataGrid 左侧的“编辑”列,请将其替换为您的 ASPX 文件:

    AutoGenerateEditButton="True"
    

    有了这个:

    AutoGenerateEditButton="False"
    

    来自MSDN 上的文档:

    当 AutoGenerateEditButton 属性设置为 true 时,会自动将一列...与每个数据行的编辑按钮添加到 GridView 控件中。


    如果您想在代码隐藏中执行此操作,您可以使用您设置的 ID 访问相同的属性:

    // test whether the grid is read-only for the current user
    if (userIsReadOnly)
        GridView1.AutoGenerateEditButton = false;
    

    【讨论】:

    • 对不起,我忘了提到我想以编程方式执行此操作。我正在尝试有一个可以编辑的组和其他只能看到表格的组。
    【解决方案2】:

    您需要查找一个数据网格视图属性。这是您要隐藏的行标题。看到额外的列了吗?您可以隐藏图标,也可以隐藏包含它的列/标题。

    datagridview1.RowHeadersVisible = False
    

    datagridview1.ShowEditingIcon = False
    

    您也可以在 Datagridview 的属性窗口中执行此操作。

    【讨论】:

    • 这是 vb.net,他也标记了它。但实际上,更接近 WinForms。我通常在 VS 属性窗口中进行。
    • 我没有看到你提到的方法。它显示:Gridview1.Showheader 或 GridView1.ShowFooter 但不是上面显示的任何一个。
    • GridView DataGridView
    • 啊,那是通讯问题。 @Plutonix 是对的。对此感到抱歉。