GridView实现列显示或隐藏

本文介绍如何使用GridView实现动态复杂表头绘制、勾选显示或隐藏列,并提供了自定义导出功能的具体实现方法,包括遍历CheckBox来确定导出哪些列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、采用GridView实现动态的复杂表头的制作

绘制表头主要采用如下方法:表头绘制顺序为先行后列逐一绘制,在绘制过程总会出现列的合并及行合并。按照如图顺序进行表头绘制。其中第二行为绑定数据源的行



         

2、勾选显示列与隐藏列(遍历checkbox判断哪些列显示,哪些列隐藏)


3、自定义导出

在导出是会遇到有些选中的列的没有导出,解决方案为遍历checkbox,给对应头和列设置为true即可以

                foreach (Control c in this.form1.Controls)//遍历form1内的所有控件  
                {
                    if (c is CheckBox)//只遍历CheckBox控件   
                    {
                        bool flag = false;
                        string ZIYUAN = "";
                        if (((CheckBox)c).Checked == true)
                        {
                            flag = true;
                            ZIYUAN = ((CheckBox)c).Text;
                        }
                        else
                        {
                            flag = false;
                            ZIYUAN = ((CheckBox)c).Text;
                        }
                        Export(flag, ZIYUAN);
                    }

                }

  private void Export(bool flag, string ZIYUAN)
        {
            switch (ZIYUAN)
            {
                case "电":
                    this.GridView1.Columns[10].Visible = flag;
                    this.GridView1.Columns[11].Visible = flag;
                    this.GridView1.HeaderRow.Cells[8].Visible = flag;
                    this.GridView1.HeaderRow.Cells[23].Visible = flag;
                    this.GridView1.HeaderRow.Cells[24].Visible = flag;
                    this.GridView1.HeaderRow.Cells[56].Visible = flag;
                    this.GridView1.HeaderRow.Cells[57].Visible = flag;
                    this.GridView1.HeaderRow.Cells[91].Visible = flag;
                    this.GridView1.HeaderRow.Cells[92].Visible = flag;
                    break;
                case "水":

                    this.GridView1.Columns[12].Visible = flag;
                    this.GridView1.Columns[13].Visible = flag;
                    this.GridView1.HeaderRow.Cells[9].Visible = flag;
                    this.GridView1.HeaderRow.Cells[25].Visible = flag;
                    this.GridView1.HeaderRow.Cells[26].Visible = flag;
                    this.GridView1.HeaderRow.Cells[58].Visible = flag;
                    this.GridView1.HeaderRow.Cells[59].Visible = flag;
                    this.GridView1.HeaderRow.Cells[93].Visible = flag;
                    this.GridView1.HeaderRow.Cells[94].Visible = flag;
                    break;
                case "原煤":
                    this.GridView1.Columns[14].Visible = flag;
                    this.GridView1.Columns[15].Visible = flag;
                    this.GridView1.HeaderRow.Cells[10].Visible = flag;
                    this.GridView1.HeaderRow.Cells[27].Visible = flag;
                    this.GridView1.HeaderRow.Cells[28].Visible = flag;
                    this.GridView1.HeaderRow.Cells[60].Visible = flag;
                    this.GridView1.HeaderRow.Cells[61].Visible = flag;
                    this.GridView1.HeaderRow.Cells[95].Visible = flag;
                    this.GridView1.HeaderRow.Cells[96].Visible = flag;

                    break;
                case "天然气":
                    this.GridView1.Columns[16].Visible = flag;
                    this.GridView1.Columns[17].Visible = flag;


                    this.GridView1.HeaderRow.Cells[11].Visible = flag;
                    this.GridView1.HeaderRow.Cells[29].Visible = flag;
                    this.GridView1.HeaderRow.Cells[30].Visible = flag;
                    this.GridView1.HeaderRow.Cells[62].Visible = flag;
                    this.GridView1.HeaderRow.Cells[63].Visible = flag;
                    this.GridView1.HeaderRow.Cells[97].Visible = flag;
                    this.GridView1.HeaderRow.Cells[98].Visible = flag;
                    break;
                case "汽油":
                    this.GridView1.Columns[18].Visible = flag;
                    this.GridView1.Columns[19].Visible = flag;
                    this.GridView1.Columns[20].Visible = flag;
                    this.GridView1.Columns[21].Visible = flag;
                    this.GridView1.Columns[22].Visible = flag;
                    this.GridView1.Columns[23].Visible = flag;


                    this.GridView1.HeaderRow.Cells[12].Visible = flag;
                    this.GridView1.HeaderRow.Cells[31].Visible = flag;
                    this.GridView1.HeaderRow.Cells[32].Visible = flag;
                    this.GridView1.HeaderRow.Cells[33].Visible = flag;
                    this.GridView1.HeaderRow.Cells[34].Visible = flag;
                    this.GridView1.HeaderRow.Cells[35].Visible = flag;
                    this.GridView1.HeaderRow.Cells[36].Visible = flag;
                    this.GridView1.HeaderRow.Cells[64].Visible = flag;
                    this.GridView1.HeaderRow.Cells[65].Visible = flag;
                    this.GridView1.HeaderRow.Cells[66].Visible = flag;
                    this.GridView1.HeaderRow.Cells[67].Visible = flag;
                    this.GridView1.HeaderRow.Cells[68].Visible = flag;
                    this.GridView1.HeaderRow.Cells[69].Visible = flag;

                    this.GridView1.HeaderRow.Cells[99].Visible = flag;
                    this.GridView1.HeaderRow.Cells[100].Visible = flag;
                    this.GridView1.HeaderRow.Cells[101].Visible = flag;
                    this.GridView1.HeaderRow.Cells[102].Visible = flag;
                    this.GridView1.HeaderRow.Cells[103].Visible = flag;
                    this.GridView1.HeaderRow.Cells[104].Visible = flag;




                    break;
                case "柴油":
                    this.GridView1.Columns[24].Visible = flag;
                    this.GridView1.Columns[25].Visible = flag;
                    this.GridView1.Columns[26].Visible = flag;
                    this.GridView1.Columns[27].Visible = flag;
                    this.GridView1.Columns[28].Visible = flag;
                    this.GridView1.Columns[29].Visible = flag;


                    this.GridView1.HeaderRow.Cells[13].Visible = flag;
                    this.GridView1.HeaderRow.Cells[37].Visible = flag;
                    this.GridView1.HeaderRow.Cells[38].Visible = flag;
                    this.GridView1.HeaderRow.Cells[39].Visible = flag;
                    this.GridView1.HeaderRow.Cells[40].Visible = flag;
                    this.GridView1.HeaderRow.Cells[41].Visible = flag;
                    this.GridView1.HeaderRow.Cells[42].Visible = flag;

                    this.GridView1.HeaderRow.Cells[70].Visible = flag;
                    this.GridView1.HeaderRow.Cells[71].Visible = flag;
                    this.GridView1.HeaderRow.Cells[72].Visible = flag;
                    this.GridView1.HeaderRow.Cells[73].Visible = flag;
                    this.GridView1.HeaderRow.Cells[74].Visible = flag;
                    this.GridView1.HeaderRow.Cells[75].Visible = flag;

                    this.GridView1.HeaderRow.Cells[105].Visible = flag;
                    this.GridView1.HeaderRow.Cells[106].Visible = flag;
                    this.GridView1.HeaderRow.Cells[107].Visible = flag;
                    this.GridView1.HeaderRow.Cells[108].Visible = flag;
                    this.GridView1.HeaderRow.Cells[109].Visible = flag;
                    this.GridView1.HeaderRow.Cells[110].Visible = flag;
                    break;
                case "热力":
                    this.GridView1.Columns[30].Visible = flag;
                    this.GridView1.Columns[31].Visible = flag;

                    this.GridView1.HeaderRow.Cells[14].Visible = flag;
                    this.GridView1.HeaderRow.Cells[43].Visible = flag;
                    this.GridView1.HeaderRow.Cells[44].Visible = flag;
                    this.GridView1.HeaderRow.Cells[76].Visible = flag;
                    this.GridView1.HeaderRow.Cells[77].Visible = flag;
                    this.GridView1.HeaderRow.Cells[111].Visible = flag;
                    this.GridView1.HeaderRow.Cells[112].Visible = flag;
                    break;
                case "其他":
                    break;
                default:
                    break;
            }
        }
4、在导出时由于使用了class样式,这样导致导出的Excel会有样式的变化。可以适当的将class样式转换为style的写法,保留html样式进行导出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值