您好我已经为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();
答案 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字段列表。