选择GridView控件中显示的列

时间:2014-05-13 18:46:55

标签: c# asp.net gridview

您好我已经为gridview创建了一个数据集,当它运行时会显示数据集中的所有列,我想控制它显示的列;但是,当我点击设计器中的编辑列时,它没有显示任何要编辑的列。当我使用SQLDataSource控件并选择它作为我的数据集时,我可以看到并选择我想要查看的所有列。如何在不使用SqlDataSource控件的情况下对其进行编码?

SqlConnection PTConn = new SqlConnection(ConfigurationManager.ConnectionStrings["Project_Tracker"].ConnectionString);
SqlCommand PTCmd = new SqlCommand("Select * from tbl_Projects", PTConn);
SqlDataAdapter PTda = new SqlDataAdapter(PTCmd);
DataSet PTds = new DataSet();
PTda.Fill(PTds);

GridView1.DataSource = PTds;
GridView1.DataBind();

3 个答案:

答案 0 :(得分:0)

您需要处理RowDataBound事件:

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

或者,您可以将AutoGenerateColumns属性设置为false并创建templated custom columns或DataBound列:

<Columns>
    <asp:BoundField DataField="field1" HeaderText="Field1" />
    <asp:BoundField DataField="field2" HeaderText="Field2" />
    <asp:BoundField DataField="field3" HeaderText="Field3" />
    ...
</Columns>

最后一个选项是将您的SQL语句修改为明确SELECT所需的字段,而不是选择*

SqlCommand PTCmd = new SqlCommand("Select field1, field2, field3 from tbl_Projects", PTConn);

但是,如果你需要,例如,ID,​​那么后者可能不是一个选项。我认为第一个选项是最简单,最快的实现。

答案 1 :(得分:0)

如果要查看各列,则必须明确选择要查看的字段,而不是使用SELECT *。这就是我之前做过的事情。

答案 2 :(得分:0)

设计师的目的是与已知的&#34;数据源 设计时。在以编程方式分配数据源时,不能使用设计器编辑GridView字段列表。