【问题标题】:How to hide column in GridView after DataBind?DataBind后如何隐藏GridView中的列?
【发布时间】:2015-09-16 06:40:24
【问题描述】:

我问这个问题是因为我认为我对此有不同的问题:How to hide gridview column after databind?

我的 gridview 有来自数据库的数据。我没有在我的代码中设置任何“td”,但是 html 将 gridview 更改为 table 并具有“td”。问题是,我不想在页面上显示单元格或“td”,我只想接收单元格中的数据以在数据库中显示图像。

这是从数据库中检索数据的代码:

   public static DataTable FetchAllImagesInfo(int id)
   {
     string sb = "Select img_content, Img_id, csrid FROM images WHERE Img_Id = " + id + ";";
     SqlConnection conn = DatabaseFactory.GetConnection();
     SqlDataAdapter da = new SqlDataAdapter(sb, conn);
     DataTable dt = new DataTable();
     da.Fill(dt);
     return dt;
    }

这是绑定 GridView 的代码隐藏,这里我尝试将 Visible 设置为 true 或 false,但它不起作用。我手动设置了列索引,因为它只有 3 列:

GridView1.DataSource = ProductAllLocationCatalog.FetchAllImagesInfo(_id);
GridView1.DataBind();
GridView1.Columns[0].Visible = true;
GridView1.Columns[1].Visible = false;
GridView1.Columns[2].Visible = false;

而且,这是我的 aspx 代码:

<asp:GridView ID="GridView1" runat="server">
  <Columns>
    <asp:TemplateField runat="server">
       <ItemTemplate runat="server">
          <asp:Image ID="image1" runat="server" ImageUrl='<%#"Handler.ashx?csrid="+Eval("csrid") %>' style="max-height:400px; max-width:940px; text-align:center; margin:auto; display:block;" />
       </ItemTemplate>
     </asp:TemplateField>
  </Columns>
</asp:GridView>   

我只需要数据库中的图像,而不需要其他图像。但是如果我只选择图片,gridview不能做DataBind(),我不能得到“csrid”的值。

谢谢!

【问题讨论】:

    标签: c# asp.net gridview data-binding


    【解决方案1】:

    试试

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

    我认为问题在于您的 GridView 会自动生成您的列,而 GridView.Columns 属性仅存储显式声明的列。您可以隐藏包含在每行绑定时不需要的列的单元格,而不是隐藏列。似乎应该有更好的方法来处理这个问题,但是除了使用显式声明的列之外,我不知道。

    【讨论】:

    • 我怎么称呼这个空白?哪个会填充参数?
    • 将属性 onrowdatabound="GridView_RowDataBound" 添加到您的gridview,例如: 并且应该在行时自动调用它是数据绑定
    猜你喜欢
    • 2014-12-16
    • 2012-09-30
    • 2011-06-24
    • 2014-12-24
    • 2018-09-06
    • 1970-01-01
    • 1970-01-01
    • 2012-03-23
    • 2012-12-28
    相关资源
    最近更新 更多