【问题标题】:Data GridView C# hide a column at run timeData GridView C# 在运行时隐藏一列
【发布时间】:2014-03-01 10:50:00
【问题描述】:

我有一个 datagridview 名称是“grdShowDeatils”,一个名为“objShowCampaignStats”的类有一个方法,它返回一个 DataTable 方法的名称是“GetCapmaignsStatsDetails()”

{
grdShowDeatils.DataSource = AnyDataTable;
}

我的问题是dataTable 有三列,我想在运行时隐藏第二列,它不应该对用户可见。我该怎么做?

【问题讨论】:

标签: c# winforms datagridview datatable


【解决方案1】:

可以编写如下代码

{    
    grdShowDeatils.DataSource = objShowCampaignStats.GetCapmaignsStatsDetails();
    grdShowDeatils.Columns[3].Visible = false;
}

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        e.Row.Cells[0].Visible = false;
    }

【讨论】:

  • @AHMAD SUMRAIZ 哦,不,我已将您的预期答案添加为第一。但是您正在接受某人的回答
【解决方案2】:

使用这个

{
    grdShowDeatils.DataSource = objShowCampaignStats.GetCapmaignsStatsDetails();
    grdShowDeatils.Columns[1].Visible = false;
}

【讨论】:

    【解决方案3】:

    我假设这是 asp.Net Web 表单——你不能设置 grdShowDeatils.autoGenerateColumns = "false" 然后只指定第 1 列和第 3 列(通过设计器或以编程方式)?

    【讨论】:

      【解决方案4】:

      假设您的 DataTable 返回以下三列,

      姓名、地址、电话号码,而你想隐藏地址栏

      .aspx页面可以按如下方式绑定DataGridView,

      <asp:DataGridView ID ="grdShowDeatils" runat="server">
       <Columns>
        <asp:BoundColumn HeaderText="Name" DataFeild="Name"/>
        <asp:BoundColumn HeaderText="Address" DataFeild="Address" Visible = "False"/>
        <asp:BoundColumn HeaderText="Phone No." DataFeild="PhoneNo"/>
       </Columns>
      </asp:DataGridView>
      

      您可以在RowDataBound DataGridView 事件中编码,如下所示,

      protected void grdShowDeatils_RowDataBound(object sender, GridViewRowEventArgs e)
      {
         e.Rows.Cells[1].Visible = false;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-06-16
        • 1970-01-01
        • 1970-01-01
        • 2010-09-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-25
        相关资源
        最近更新 更多