aardio - godking.vlistEx虚表点击表头全选、排序

虚表内置了名称为 DefaultCheckedImg DefaultUncheckedImg 的两张图片,分别为 【选择框勾选状态默认图片】 和 【选择框未勾选状态默认图片】。

1、设置选择框为图片时,只需将 name 设为上述名称即可。

import win.ui;
import godking.vlistEx;
/*DSG{{*/
mainForm = win.form(text="vlistEx - table adapter";right=849;bottom=578)
mainForm.add(
vlist={cls="vlistEx";left=10;top=10;right=840;bottom=568;db=1;dl=1;dr=1;dt=1;edge=1;transparent=1;z=1}
)
/*}}*/
 
// 填充数据
var t = { fields={"序号","姓名","年龄","地址","身份证"} };
for(i=1;100;1){
    var tt={};
	tt["序号"]="[@rowindex]";  // 行序号标记是不允许编辑修改的
	tt["姓名"]=math.random(1000,9999)+"姓名";
	tt["年龄"]=math.random(10,99);
	tt["地址"]=math.random(1000,9999)+"地址";
	tt["身份证"]=math.random(1000,9999)+"身份证";
	..table.push(t,tt);
}
mainForm.vlist.setTable(t,{"<img name='DefaultUncheckedImg',w=14,h=14> 序号","姓名","年龄","地址","身份证"},{80,100,100,100,200},0x2);
mainForm.vlist.checkBox.show = true;
mainForm.vlist.setHeaderHeight(50);
mainForm.vlist.headerAlign = 1;
mainForm.vlist.fillParent();
 
// 自定义排序符号
mainForm.vlist.setSortMark(" ↓" /*升序符号*/," ↑" /*降序符号*/,"" /*默认符号*/)
 
// 点击表头全选、排序
var checkedall = false ;
mainForm.vlist.onSortColumn = function(col,desc){
	/*点击列标题进行排序。col:列号,从1开始。desc:是否倒序。返回false则禁止排序*/
	if col===1 {
		checkedall = !checkedall;
		var text = checkedall?"<img name='DefaultCheckedImg',w=14,h=14> 序号":"<img name='DefaultUncheckedImg',w=14,h=14> 序号"
		mainForm.vlist.setChecked(,checkedall/*勾选状态*/);
		mainForm.vlist.setColumnText(1,text);
		return false; 
	} else {
		owner.sort( col, desc, 0 /*数据转换:0默认 1时间 2数值 3文本*/ ,false /*使用微软api进行文本排序*/ );
	}
}
 
mainForm.show();
win.loopMessage();

2、如果选择框需要自绘实现,而不是使用图片,可按如下方法实现:

import win.ui;
import godking.vlistEx;
/*DSG{{*/
mainForm = win.form(text="vlistEx - table adapter";right=849;bottom=578)
mainForm.add(
vlist={cls="vlistEx";left=10;top=10;right=840;bottom=568;db=1;dl=1;dr=1;dt=1;edge=1;transparent=1;z=1}
)
/*}}*/
// 填充数据
var t = { fields={"序号","姓名","年龄","地址","身份证"} };
for(i=1;100;1){
    var tt={};
	tt["序号"]="[@rowindex]";  // 行序号标记是不允许编辑修改的
	tt["姓名"]=math.random(1000,9999)+"姓名";
	tt["年龄"]=math.random(10,99);
	tt["地址"]=math.random(1000,9999)+"地址";
	tt["身份证"]=math.random(1000,9999)+"身份证";
	..table.push(t,tt);
}
mainForm.vlist.setTable(t,{"<img name='[@ownerDraw]',w=14,h=14,param={'headercheckbox',false}> 序号","姓名","年龄","地址","身份证"},{80,100,100,100,-1},1);
mainForm.vlist.checkBox.show = true;
mainForm.vlist.setHeaderHeight(50);
mainForm.vlist.headerAlign = 1;
// 可自定义排序符号
mainForm.vlist.setSortMark(" ↓" /*升序符号*/," ↑" /*降序符号*/,"" /*默认符号*/);
// 点击表头全选、排序
var checkedall = false ;
mainForm.vlist.onSortColumn = function(col,desc){
	/*点击列标题进行排序。col:列号,从1开始。desc:是否倒序。返回false则禁止排序*/
	if col===1 { // 第一列仅处理全选,不排序
		checkedall = !checkedall;
		var text = checkedall?"<img name='[@ownerDraw]',w=14,h=14,param={'headercheckbox',true}> 序号":"<img name='[@ownerDraw]',w=14,h=14,param={'headercheckbox',false}> 序号"
		mainForm.vlist.setChecked(,checkedall/*勾选状态*/);
		mainForm.vlist.setColumnText(1,text);
		return false; 
	} else { // 其他列排序
		owner.sort( col, desc, 0 /*数据转换:0默认 1时间 2数值 3文本*/ ,false /*使用微软api进行文本排序*/ );
	}
}
mainForm.vlist.ownerDraw = function (row,col,hdc,x,y,w,h,param,...){
	//表头选择框为实时绘制,不是图片
	if param[[1]]==='headercheckbox' mainForm.vlist.drawCheckBox(hdc,x,y,w/*大小*/,param[[2]]/*是否选中*/,/*正常颜色*/,/*选中颜色*/,/*对号颜色*/,/*是否单选*/);
}
mainForm.show();
win.loopMessage();

### 关于 aardio 的 customPlus 组件 #### 一、简介 `customPlus` 是基于 `plus` 控件进一步开发的功能更加强大且灵活的自定义控件集合。通过该组件,开发者能够更加便捷地创建复杂界面并实现丰富的交互效果[^2]。 #### 二、安装与引入 为了使用此组件,需先下载对应的库文件 `plusList2.rar` 或者直接将源码保存至项目中的指定路径 `/lib/godking/plusList2.aardio` 下。完成上述操作之后,在脚本开头处加入如下语句来加载所需的命名空间: ```aardio import godking.plusList2; ``` #### 三、基本属性设置 下面是一些常用的属性配置方式及其含义说明: - **skin**: 设置皮肤样式; - **itemHeight**: 定义列表项高度; - **showCheckBox**: 是否显示复选框; 这些参数可以通过对象初始化时传入字典形式的数据结构来进行批量设定: ```aardio var list = winform.add(godking.plusList2,{ skin:"blue", // 应用蓝色主题风格 itemHeight:30, // 列表条目高为30像素 showCheckBox:true // 显示左侧的选择框 }); ``` #### 四、事件处理机制 对于常见的点击、双击等行为监听可通过绑定特定名称的方法名来达成目的。例如当某个选项被单击触发时执行相应的逻辑动作: ```aardio list.onItemClick = function(index){ console.log("Item "+index+" was clicked"); }; ``` 以上即是对 `aardio customPlus` 基础介绍以及简单应用实例解析的内容概述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卢光庆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值