asp.net 关于DataSet隐藏列的问题。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataSet ds = GetData();
if (ds.Tables.Count > 0)
{
//给DataSet中字段取别名
ds.Tables[0].Columns["sno"].ColumnName = "学号";
ds.Tables[0].Columns["sname"].ColumnName = "姓名";
ds.Tables[0].Columns["ssex"].ColumnName = "性别";
ds.Tables[0].Columns["sage"].ColumnName = "年龄";
ds.Tables[0].Columns["sdept"].ColumnName = "专业";
//第一种方法隐藏列
//ds.Tables[0].Columns[0].ColumnMapping = MappingType.Hidden;
GridView1.DataSource = ds;
GridView1.DataBind();
//第二种方法隐藏列
//GridView1.Columns[0].Visible = false;
}
else
{
string scriptString = "alert('没有可显示的数据!');";
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "success", scriptString, true);
}
}
}
public DataSet GetData()
{
string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnection conn = new SqlConnection(connectionString);
conn.Open();
SqlDataAdapter adapter = new SqlDataAdapter("select * from student", conn);
DataSet dataset = new DataSet();
adapter.Fill(dataset);
conn.Close();
return dataset;
}
第一种方法是在DataSet中隐藏列,然后绑定到GridView上,但是没有效果。第二种方法是先将DataSet绑定到GridView上,然后设置GridView某列是否显示为false,出错——索引超出范围。求解!!!!!
------解决方案--------------------
GridView设置隐藏列是可以的,在绑定事件里面进行设置
e.Row.Cells[0].Visible = false;