UniDBGrid控件的几个功能优化
内容自动换行
默认UniDBGrid的cell内的内容如果超出表格列宽并不自动换行和调整行高,给客户带来极大的不方便,通过修改ServerModule的属性CustomCSS可以实现。
<style type="text/css">
.x-grid-cell-inner {
white-space: initial;
}</style>
鼠标停留显示字段
如果某个表格字段内容太长,你想实现当鼠标移动到字段上方时以提示窗口形式显示字段内容,你可以在查询语句执行后设置表格对应字段的ShowToolTip属性实现。
UniDBGrid1.Columns.Items[0].ShowToolTip:=true;
表格底部显示当前记录数和总记录数
在UniDBGrid的ClientEvents->UniEvents属性中,选择Ext.toolbar.Paging,添加pagingBar.beforeInit事件,再运行表格后你会发现表格底部右侧将显示“显示1-10条,共120条”。
function pagingBar.beforeInit(sender, config)
{
config.displayInfo = true;
}
自动设置列宽
打开UniDBGrid的ClientEvents->ExtEvents属性,选择Ext.data.Store页,双击其store.load事件,添加如下代码即可实现每个列根据其最长字段的长度自动调整表格列宽:
function store.load(sender, records, successful, operation, eOpts)
{
sender.grid.columnManager.columns.forEach(function(col){col.autoSize()})
}
锁定某行某列
如果UniDBGrid的ReadOnly属性为False,则允许双击一个CELL来编辑其内容,如果想要让特定的行和列不允许被编辑,请打开UniDBGrid的ClientEvents->ExtEvents属性,选择Ext.grid.Panel页,双击其beforeedit事件,添加如下代码:
function beforeedit(editor, context, eOpts)
{
var FixedRow, FixedCol;
FixedRow = 3;
FixedCol = 3;
if (editor.cmp.uniRow < FixedRow || editor.cmp.uniCol < FixedCol)
{
return false;
}
}
以上代码将实现锁定前三行和前三列不能双击表格进入编辑状态,其它区域不受影响。但是,测试发现,如果UniDBGrid的Options->dgRowSelect属性为true时,该方法将失效。
获取点中字段的内容
打开UniDBGrid的ClientEvents->ExtEvents属性,选择Ext.grid.Panel页,双击其celledit事件,添加如下代码:
function cellclick(sender, td, cellIndex, record, tr, rowIndex, e, eOpts)
{
alert(sender.store.getAt(rowIndex).get(cellIndex));
}
以上代码能够实现显示鼠标点击的CELL。但是,测试发现,如果UniDBGrid设置了Options->dgRowSelect和dgRowNumbers等属性,cellindex要相应的减去这些设置属性导致新增的列数,比如表格设置了dgRowSelect属性,则表格的第一列是勾选框,占用了一列,alert(sender.store.getAt(rowIndex).get(cellIndex));
应该写为
alert(sender.store.getAt(rowIndex).get(cellIndex-1));
设置隔行变色和特征行变色
有时需要让表格的奇数行和偶数行分别显示不同的背景颜色,有时又需要根据某个字段的特征值设定其记录背景色,双击UniDBGrid的OnDrawColumnCell添加事件:
procedure TUniFrame1.UniDBGrid1DrawColumnCell(Sender: TObject; ACol,
ARow: Integer; Column: TUniDBGridColumn; Attribs: TUniCellAttribs);
begin
if Column.Field.DataSet.RecNo mod 2=0 then
begin
Attribs.Color:=clBlue;
end
else
begin
Attribs.Color:=clRed;
end;
if Column.Field.DataSet.FieldByName('护照编号').AsString='HZ002' then
begin
Attribs.Color:=clYellow;
end;
end;
————————————————
版权声明:本文为CSDN博主「【路在脚下】」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dlboy2018/article/details/103544149
UniDBGrid控件的几个功能优化的更多相关文章
- iOS开发UI篇—UIScrollView控件实现图片缩放功能
iOS开发UI篇—UIScrollView控件实现图片缩放功能 一.缩放 1.简单说明: 有些时候,我们可能要对某些内容进行手势缩放,如下图所示 UIScrollView不仅能滚动显示大量内容,还能对 ...
- 在web中使用windows控件,实现摄像头功能
最近做的一个Web版的视频会议项目,需要在网页中播放来自远程摄像头采集的实时视频,我们已经有了播放远程实时视频的使用C#编写的windows控件,如何将其嵌入到网页中去了?这需要使用一种古老的技术,A ...
- 如何Windows分页控件中增加统计功能
在我的博客里面,很多Winform程序里面都用到了分页处理,这样可以不管是在直接访问数据库的场景还是使用网络方式访问WCF服务获取数据,都能获得较好的效率,因此WInform程序里面的分页控件的使用是 ...
- UIScrollView控件实现图片缩放功能
转发自:http://www.cnblogs.com/wendingding/p/3754268.html 一.缩放 1.简单说明: 有些时候,我们可能要对某些内容进行手势缩放,如下图所示 UIScr ...
- 如何使用Python调用AutoIt来实现Flash控件的上传功能
先看一段代码 upload.au3(这个后缀autoit3的格式): ;等待出现title为数据采集-军课网-MozillaFirefox的浏览器窗口 WinWait("数据采集 - XX网 ...
- ASP.NET让FileUpload控件支持浏览自动上传功能的解决方法
ASP.NET的FileUpload控件默认是不支持服务端的onchange事件的,此时可以用一种变通的方法来实现这一功能. 这就需要借用客户端的onchange事件,调用__doPostBack方法 ...
- .NET基于分页控件实现真分页功能
下面利用分页控件实现分页功能.分页控件下载网址:http://www.webdiyer.com/ 从该网址下载AspNetPager.dll后,在VS2008中在工具箱中,右键 —> 选择项 — ...
- iOS UI-UIScrollView控件实现图片缩放功能
一.缩放 1.简单说明: 有些时候,我们可能要对某些内容进行手势缩放,如下图所示 UIScrollView不仅能滚动显示大量内容,还能对其内容进行缩放处理.也就是说,要完成缩放功能的话,只需要将需要缩 ...
- lodop 控件实现web打印功能
WEB套打可选方案不多,理想的更少,利用免费控件Lodop+JavaScript实现精确套打,算是较为经典的选择.这种方案其实比较简单,利用一个htm文件就可以实现模板设计过程,几乎是“空手套”式的开 ...
- C# 利用 Time 组件实现 Button 控件的长按功能
参考链接:https://blog.csdn.net/yongh701/article/details/50134379 如果在C#窗体,单纯点击按钮,之后将鼠标长时间放在这个按钮上,不放开,双击按钮 ...
随机推荐
- jquery 事件方法大全
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <style type ...
- js任务执行顺序
JS 线程简述 js是单线程的,一次只能执行一个任务,执行完毕后才能继续下一个. js执行任务的方式也叫作同步执行,同步和异步与我们平时理解的不太一样,平时的同步我们会认为是多个事情一起做,但是在js ...
- Appium自动化测试之键盘操作pressKeyCode()方法(Android特有)
电话键 KEYCODE_CALL 拨号键 5 KEYCODE_ENDCALL 挂机键 6 KEYCODE_HOME 按键Home 3 KEYCODE_MENU 菜单键 82 KEYCODE_BACK ...
- Docker部署Nastool(含jellyfin、transmission)
先弄清楚原理 首先从[资源搜索]或者[推荐栏目]寻找自己想看的电影,执行订阅或者搜索资源启动下载,下载电影存放在downloads/mov目录下,[媒体整理]就是将mov子目录下电影文件复制到down ...
- 在Unity3D中开发的Sketch Shader
Pencil Sketch Shader 特点 此素描渲染风格的Shader是顶点片元Shader,由本人手动编写完成. 此素描渲染风格的Shader已经在移动设备真机上进行过测试,可以直接应用到您的 ...
- 进入容器后不显示id
https://www.656463.com/wenda/dockerexejrrqbxsrqID_493 net=host的原因
- Django框架搭建web项目(三)
参考官网文档:https://docs.djangoproject.com/zh-hans/4.0/intro/tutorial02/ 在生成的app中进行数据库表设计. 1.在路径H:\myproj ...
- input button
即使你在文本输入下方添加了按钮,它们也会在页面上彼此相邻. 这是因为 input 和 button 元素都是内联元素,它们不会出现在新的行上. <button type='submit'> ...
- 问题记录[ PPOME 修改子屏幕日期弹框,No changes to data, periods undone. Message no. 5A496 ]
最近在做组织信息增强,将子屏幕嵌入PPOME后,修改日期后会弹出信息框并重置300屏幕的开始日期.且PO13和PP01无异常 刚开始以为7000屏幕配置问题,但是对比后并没发现异常.跟踪消息号发现函数 ...
- Oracle学习-----基本SQL select语句
一.基本select语句 SELECT 标识 选择那些列 FROM 标识从哪个表中选择 select * 标识 全部选择 select department_id, location_id ...