虚表 —— CheckBox列使用方法

光庆 28天前 568

请升级虚表库到最新版再测试下面的代码

import win.ui;
import godking.vlistEx;
/*DSG{{*/
mainForm = win.form(text="vlistEx - table adapter";right=527;bottom=515)
mainForm.add(
vlist={cls="vlistEx";left=8;top=8;right=516;bottom=504;border=1;db=1;dl=1;dr=1;dt=1;z=1}
)
/*}}*/
var t = { fields={"序号","姓名","状态","性别男","性别女"} };
for(i=1;100;1){
    var tt={};
    tt["序号"]="[@rowindex]";  // 行序号标记是不允许编辑修改的
    tt["姓名"] = string.random(1,"卢张王李赵王刘")++string.random(2,"阿斯顿发生发生发顺丰撒分析吃吧法姬娜与一体")
    tt["状态"] = ..math.random(0,1);
    tt["性别男"] = ..math.random(0,1);
    tt["性别女"] = 1-tt["性别男"];
    ..table.push(t,tt);
}
mainForm.vlist.setHeaderEx({
    text = {{"序号","姓名","状态","性别","-"}}
    width = {50,100,100,100,100}; /* 标题列宽。支持每列单独设置:{50,100,100,100,150} */
    height = 40; /* 标题行高。支持每行单独设置:{50,30,30} */
    align = 1;
    bkcolor = 0xEEEEEE;
})
mainForm.vlist.setTable(t,false);
mainForm.vlist.setColumnType(3/*列号*/,8/*_vlistEx_ColType_CheckBox*/,14/*大小*/,/*颜色*/,"合格"/*选中文本*/,"合格"/*未选中文本*/,false/*是否单选*/,/*单选关联列*/,/*是否逻辑型*/);
mainForm.vlist.setColumnType(4/*列号*/,8/*_vlistEx_ColType_CheckBox*/,14/*大小*/,0xFFA01600/*颜色*/,"男"/*选中文本*/,"男"/*未选中文本*/,true/*是否单选*/,5/*单选关联列*/,/*是否逻辑型*/);
mainForm.vlist.setColumnType(5/*列号*/,8/*_vlistEx_ColType_CheckBox*/,14/*大小*/,0xFF228B22/*颜色*/,"女"/*选中文本*/,"女"/*未选中文本*/,true/*是否单选*/,4/*单选关联列*/,/*是否逻辑型*/);
mainForm.show();
win.loopMessage();


最新回复 (16)
  • cgfriend 28天前
    0 引用 2
    庆帝厉害!
  • niheibie 28天前
    0 引用 3
    66666666
  • kangge 28天前
    0 引用 4

    光庆大佬,需要改哪些重要的代码,才能跟你的例子一样显示呢?

  • 光庆 28天前
    0 引用 5
    kangge 光庆大佬,需要改哪些重要的代码,才能跟你的例子一样显示呢?
    代码都在例子中
  • kangge 28天前
    0 引用 6
    我的意思是一运行,表格显示很宽,我截图的样子。需要修改哪里让它自缩放成你截图的样子。
  • 近我者赤 28天前
    0 引用 7
    用“光庆封装下载程序”下的不行,得从首页“光庆的aardio库下载网盘”那里下,再解压缩到相应文件夹下才行。前者下的是空的。
  • 光庆 28天前
    0 引用 8
    kangge 我的意思是一运行,表格显示很宽,我截图的样子。需要修改哪里让它自缩放成你截图的样子。
    设置列宽
  • ccbwx 27天前
    0 引用 9

    升级最新的,这是还差啥?

  • 光庆 27天前
    0 引用 10
    复制我发的代码,能正常显示吗?正常的话,参考代码,看看每一句的作用,并不繁琐,很容易理解。
  • Xmzzz 7天前
    0 引用 11
    请教个情况,列设置为 _vlistEx_ColType_CheckBox ,怎么监听该列的值被勾选或取消事件? onChecked 事件对此没响应
  • 光庆 7天前
    0 引用 12
    Xmzzz 请教个情况,列设置为 _vlistEx_ColType_CheckBox ,怎么监听该列的值被勾选或取消事件? onChecked 事件对此没响应
    onClick 试试
  • Xmzzz 3天前
    0 引用 13
    列设置为 _vlistEx_ColType_CheckBox ,通过方法getColText 获取到整列的值,时而是{"1","0"},过几天又变成了{"true","false"},而代码并没有改动,只是有最新的版本的vlistEx或aardio会更新。请教下怎么样固定返回值要么是“1”,要么是“true” 的格式。谢谢
  • 光庆 3天前
    1 引用 14
    Xmzzz 列设置为 _vlistEx_ColType_CheckBox ,通过方法getColText 获取到整列的值,时而是{"1","0"},过几天又变成了{&quo ...
    如果原值是truefalse,就使用true false,否则就使用0 1。等我下个版本加个参数,可以固定住类型。
  • 光庆 2天前
    0 引用 15
    已升级,重新下载新版本虚表库
  • Xmzzz 2天前
    0 引用 16
    光庆 已升级,重新下载新版本虚表库

    使用示例,修改如下代码:

    mainForm.vlist.setColumnType(3/*列号*/,8/*_vlistEx_ColType_CheckBox*/,14/*大小*/,/*ARGB颜色*/,"合格"/*选中文本*/,"合格"/*未选中文本*/,false/*是否单选*/,/*单选关联列*/,true/*是否逻辑值*/ )

    import console;

    var s = mainForm.vlist.getColText(3);

    console.dump( s)

    打印出来的结果还是 “0”“1”,没按 true/*是否逻辑值*/ 返回。

    所以,该参数的作用是修改列值时候进行转化为是否逻辑值。如果没修改列值,在getColText时候是不会转化,还是初始值。

    这样已经足够使用。在程序使用中始终能保证跟初始值设置(是否为逻辑值)类型一致



  • 光庆 2天前
    0 引用 17
    Xmzzz 使用示例,修改如下代码:mainForm.vlist.setColumnType(3/*列号*/,8/*_vlistEx_ColType_CheckBox*/,14/*大小*/,/*ARGB颜色*/, ...
    就是这样。理解的很透彻。所以尽量将 /*是否逻辑值*/ 设置为跟该列的值一个类型即可,这样就不会错乱了。
返回