软件开发技术交流,同学习共进步,欢迎加群, 群号:169600532

最近C/S项目中用到FarPoint.Win.Spread,想在表头加个全选的checkbox,实现效果如图:

 

列的设置大家都清楚,直接可视化视图中设置该列CellType为CheckBox类型即可

表头的设置就需要费些周折了。一般是在加载时code,代码:

 //设置行表头
FarPoint.Win.Spread.CellType.CheckBoxCellType celltype = new FarPoint.Win.Spread.CellType.CheckBoxCellType();
celltype.Caption = "全选";
spdPrintInfo_Sheet1.ColumnHeader.Cells[, ].CellType = celltype;
spdPrintInfo_Sheet1.ColumnHeader.Cells[, ].Text = "False";

由于我要把全选放在第一行,所以固定为【0,0】
然后需要给这个CheckBox定义点击事件,一般事件就是该控件的CellClick事件,详细代码如下:

 private void spdPrintInfo_CellClick(object sender, CellClickEventArgs e)
{
if (e.Column == )
{
if (e.ColumnHeader)
{
if (spdPrintInfo_Sheet1.ColumnHeader.Cells[, ].Text == "False")
{
spdPrintInfo_Sheet1.ColumnHeader.Cells[, ].Text = "True";
int rowcount = spdPrintInfo_Sheet1.RowCount;
for (int i = ; i < rowcount; i++)
{
spdPrintInfo_Sheet1.Cells[i, ].Text = "True";
}
}
else
{
spdPrintInfo_Sheet1.ColumnHeader.Cells[, ].Text = "False";
int rowcount = spdPrintInfo_Sheet1.RowCount;
for (int i = ; i < rowcount; i++)
{
spdPrintInfo_Sheet1.Cells[i, ].Text = "False";
}
}
}
else
{
if (spdPrintInfo_Sheet1.Cells[e.Row, ].Text == "False")
{
bool allCheck = true;
spdPrintInfo_Sheet1.Cells[e.Row, ].Text = "True";
for (int i = ; i < spdPrintInfo_Sheet1.RowCount; i++)
{
if (spdPrintInfo_Sheet1.Cells[i, ].Text == "False")
{
allCheck = false;
break;
}
}
if (allCheck)
{
spdPrintInfo_Sheet1.ColumnHeader.Cells[, ].Text = "True";
}
}
else
{
spdPrintInfo_Sheet1.Cells[e.Row, ].Text = "False";
//将表头也设置为不勾选
spdPrintInfo_Sheet1.ColumnHeader.Cells[, ].Text = "False";
}
}
}
}

如此,自己coding的全选就完成了,方法不是最好的,欢迎大家指正或建议更高效、简单的方法。

FarPoint.Win.Spread 自定义表头的更多相关文章

  1. FarPoint.Win.Spread 常规操作

    FarPoint.Win.Spread.FpSpread fSpread = new FarPoint.Win.Spread.FpSpread();             //设置 行数.列数    ...

  2. QTableWidget自定义表头QHeaderView加全选复选框

    1         QTableWidget自定义表头QHeaderView加全选复选框 在使用QTableWidget时需要在表头添加全选复选框,但是默认的表头无法添加复选框,只能用图片画上去一个复 ...

  3. vue + element ui 表格自定义表头,提供线上demo

    前言:工作中用到 vue+element ui 的前端框架,需要使用自定义表头,需要使用 re.转载请注明出处:https://www.cnblogs.com/yuxiaole/p/9710826.h ...

  4. ElementUI2.0组件库el-table表格组件如何自定义表头?

    效果图: npm run dev 编译项目之后,报错,要使用jsx语法需要先安装编译插件 1.安装下列安装包 npm install babel-plugin-syntax-jsx --save-de ...

  5. element之table自定义表头

    1.实现效果 2.使用render-header可以自定义表头 <el-table-column prop="date" label="日期" sorta ...

  6. ElementUI的Table-column_render-header自定义表头

    ElementUI的Table表格,官方网站上提供了很多样式,但是在日常开发中还会碰到各种情况,显然官方提供的是不能满足需求的.那么,我们就根据自己的需求对table进行改造. 先丢出关于Table的 ...

  7. WPF DataGrid 复合表头 (实现表头合并,自定义表头)

    功能说明: 将 DataGrid嵌套在本控件内,使用Label自定义表头,如果需要上下左右滚动 需要在控件外围添加  ScrollViewer 并且设置  ScrollVisibility 为Auto ...

  8. gridview自定义表头

    gridview为我们提供了丰富的接口,用于满足自定义需求. 通常asp:gridview会根据绑定的列Columns自动生成表头,展现在前台元素. 序号 类别 有时候需要复杂一些的表头. 序号 类别 ...

  9. [Qt]自定义表头实现过滤功能

    1. 写在前面 过滤功能源自项目上交互优化用户体验,在表头添加过滤符号实现过滤,替换以往在表格上方占用一行过滤项进行过滤. 2. 过滤提示 过滤提示就是三态图标(normal,hover,press) ...

随机推荐

  1. 使用Visual Studio 2017作为Linux C++开发工具

    Visual Studio 2017 微软的宇宙第一IDE Visual Studio 2017正式版出来了,地址是:https://www.visualstudio.com/vs/whatsnew/ ...

  2. Servlet中编码在过滤器中的使用

    1.先配置web.xml ->配置过滤器 // filter-class 为写的过滤器类 实现 Filter 接口 <filter> <filter-name>Encod ...

  3. 获取bing图片并自动设置为电脑桌面背景(C++完整开源程序)

    众所周知,bing搜索网站首页每日会更新一张图片,张张漂亮(额,也有一些不合我口味的),特别适合用来做电脑壁纸. 我们想要将bing网站背景图片设置为电脑桌面背景的通常做法是: 上网,搜索bing 找 ...

  4. java-信息安全(二)-对称加密算法DES,3DES,AES,Blowfish,RC2,RC4

    概述 信息安全基本概念: DES(Data Encryption Standard,数据加密标准) 3DES(Triple DES,三重数据加密算法(TDEA,Triple Data Encrypti ...

  5. [lua] mac上如何编译snapshot(检测Lua中的内存泄露)

    最近我们的unity手游频繁闪退,只要进入战斗场景,之后一段时间就会闪退,如果是在unity编辑器中则会报出not enough memory的错误!猜测应该是有内存泄漏: 由于我们使用了tolua, ...

  6. iOS开发RunLoop

    最近处于离职状态,时间也多了起来,但是学习还是不能放松,今天总结一下RunLoop,RunLoop属于iOS系统层的东西,还是比较重要的. 一.什么是RunLoop 字面意思看是跑圈,也可以看作运行循 ...

  7. 关于DLL的学习

    1.前言: 人总归还是要有梦想的,不然跟咸鱼有什么区别.这一周给自己定下了研究DLL的任务还是要逼自己完成的呀,上了一天的党校,游戏也不打在这里写博,心疼自己.话说为什么要给自己下这样一个任务呢,是因 ...

  8. https单向认证和双向认证区别

    关于证书 1.每个人都可以使用一些证书生成工具为自己的站点生成证书(比如jdk的keytool),大家称它为“自签名证书”,但是自己生成的证书是不被互联网承认的,所以浏览器会报安全提示,要求你手动安装 ...

  9. es6中的let声明变量与es5中的var声明变量的区别,局部变量与全局变量

    自己通过看typescript官方文档里的let声明,与阮一峰老师翻译的的es6学习文档,总结以下三点 1.var声明可以多次重复声明同一个变量,let不行 2.let变量只在块级作用域里面有效果,v ...

  10. 【JavaWeb】Session(转)

    Session是服务器端技术,利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的session对象,由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自 ...