在项目开发过程中,总会遇到一些问题,在某个查询页面,可以做3中查询,但是每种查询的结果GridView中的列不相同,(有8个列名是相同的,2个列名不同)
如何根据不同的查询,加载数据时,显示相应的列。需要使用GridView的RowDataBound()事件,
在ASP页面上,先将10列都定义好。
在C#后台代码中,
#region 根据查询条件进行隐藏列和显示列 protected void GridView_Data_RowDataBound(object sender, GridViewRowEventArgs e) { //第几个查询 switch (searchType) { case "search1": //显示“欠款”列5,隐藏“负责人”8 GridView_Data.Columns[5].Visible = true; //显示列 GridView_Data.Columns[8].Visible = false; //不显示列 break; case "search2": //隐藏“欠款”列,显示“负责人” GridView_Data.Columns[5].Visible = false; //不显示列 GridView_Data.Columns[8].Visible = true; //显示列 break; case "search3": //“欠款”列--改为“公司名称”,显示“地址” GridView_Data.Columns[5].Visible = true; GridView_Data.Columns[5].HeaderText= "公司名称"; GridView_Data.Columns[8].Visible = true; break; } } #endregion 根据查询条件进行隐藏列和显示列