GridView的字段数据显示和隐藏


 1 //从0开始,数更改列名是第几列;取出系统参数数据
 2 const int m_StartColumn = 12;//appName 的起始列
 3 static List m_lstAppName = SysParameter.GetByCondition("ParameterTypeID='AppName'");
 4 
 5 // 数据头事件
 6 if (e.Row.RowType == DataControlRowType.Header) {
 7     int size = m_lstAppName.Count;
 8     for (int i = m_StartColumn; i < m_StartColumn + size; i++)//int i = 5; i < 5 + nums
 9     {
10         e.Row.Cells[i].Text = m_lstAppName[i - m_StartColumn].ParameterName;//显示第0...N个参数名称
11         e.Row.Cells[i].Visible = true;//有的才显示,没有的一直隐藏
12     }
13     for (int i = m_StartColumn + size; i < m_StartColumn + 5; i++)//int i = 5; i < 5 + nums
14     {
15         e.Row.Cells[i].Visible = false;//没有一隐藏
16     }
17 }
18 
19 //最后还有个注意点,上面的是头事件,还要在每个的行事件中隐藏没有的行
20 if (e.Row.RowType == DataControlRowType.DataRow)
21 {
22     //这是行删除事件
23     ImageButton ibtn = (ImageButton)e.Row.FindControl("ibtnDel");
24     Button btnDel = (Button)e.Row.FindControl("btnDel");
25     if (ibtn != null)
26     {
27         ibtn.OnClientClick = "ShowTopConfirm('提示信息','" + Message.ConfirmDelete + "','confirmCallback(\\'" + btnDel.ClientID + "\\')');return false;";
28     }
29     //在这里处理
30     int size = m_lstAppName.Count;
31     for (int i = m_StartColumn + size; i < m_StartColumn + 5; i++)//int i = 5; i < 5 + nums
32     {
33         e.Row.Cells[i].Visible = false;//没有一隐藏
34     }
35 }

起始时,控件visible=false.