如何隐藏GridView的一个特定的值(列)?(How to hide a specific val

2019-10-18 11:00发布

在我的GridView我有这样的事情如下所示,我与在Page_Load gridview的SQL的结合,我希望它在打开的页面加载。

SqlConnection conn = new SqlConnection();
        conn.ConnectionString = "Data Source = localhost; Initial Catalog = MajorProject; Integrated Security= SSPI";
        conn.Open();

        DataSet ds = new DataSet();

        SqlDataAdapter da = new SqlDataAdapter("SELECT memberreportid, typeofcrime, crdatetime, address, detail, incidentdate, incidenttime, property, victim, suspect from memberreport", conn);
        da.Fill(ds);

        GWCase.DataSource = ds;
        GWCase.DataBind();

        conn.Close();

但是,我正在试图防止财产,受害人和犯罪嫌疑人柱出现在GridView的。 我用了

Visible = false;

在我的GridView控件,但它完全删除我的GridView(当然)。

我试着用绑定列在我的GridView如下图所示,设置能见度为false将专门设置一列可视性为假

    <asp:GridView ID="GWCase" runat="server" BackColor="#CCCCCC" BorderColor="#999999" BorderStyle="Solid" BorderWidth="3px" CellPadding="4" CellSpacing="2" ForeColor="Black" Width="100%" AutoGenerateSelectButton="True" OnSelectedIndexChanged="GWCase_SelectedIndexChanged">
        <FooterStyle BackColor="#CCCCCC" />
        <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
        <PagerStyle BackColor="#CCCCCC" ForeColor="Black" HorizontalAlign="Left" />
        <RowStyle BackColor="White" />
        <SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
        <SortedAscendingCellStyle BackColor="#F1F1F1" />
        <SortedAscendingHeaderStyle BackColor="#808080" />
        <SortedDescendingCellStyle BackColor="#CAC9C9" />
        <SortedDescendingHeaderStyle BackColor="#383838" />

     <Columns>

       <asp:BoundField DataField="property" HeaderText="property" SortExpression="property" Visible="false"/>
       <asp:BoundField DataField="victim" HeaderText="victim" SortExpression="victim" Visible="false" />
       <asp:BoundField DataField="suspect" HeaderText="suspect" SortExpression="suspect" Visible="false" />

     </Columns>
    </asp:GridView>

但是,仍然被显示的列。 如何删除在GridView有3列。 请不要问我从我的sql语句删除3属性,因为我需要进一步的功能的数据。

我也试过这个方法我在此发现的线索在SO

protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        e.Row.Cells[7].Visible = false;
        e.Row.Cells[8].Visible = false;
        e.Row.Cells[9].Visible = false;
    }

但它没有工作,以及:/

问候。

Answer 1:

您需要在创建行事件中添加该代码。

    protected void yourGrid_RowCreated(object sender, GridViewRowEventArgs e)
    {
    e.Row.Cells[7].Visible = false;
    e.Row.Cells[8].Visible = false;
    e.Row.Cells[9].Visible = false;
    }

编辑:

另一种选择可以是对网格视图分配数据源后,您这行代码中的后写这几行

   GWCase.DataSource = ds;
   GWCase.DataBind();

   GWCase.Columns[7].Visible = false;
   GWCase.Columns[8].Visible = false;
   GWCase.Columns[9].Visible = false;


Answer 2:

设置属性AutoGenerateColumns你的GridView的为假(这是真的默认情况下)。 然后添加你想要向里面显示的所有行<Columns>的标签,你已经用你不想显示的列一样。 列标签具有只要你自动生成列没有影响。



文章来源: How to hide a specific value(column) from the gridview?