aardio中listview列表视图的表实际上是一个双层的数组,直接用console.dump(winform.listview.items)就可以看到它的结构.对于
aardio中listview列表视图的排序,
aardio的table标准库中有一个函数可以很简洁地实现从大到小或从小到大排序.可以是按整数的大小来排,也可以按字符的字典序来排.示例如下:
import win.ui;
import console;
/*DSG{{*/
var winform = win.form(text="aardio教程 简码编程www.jianma123.com";right=706;bottom=474;parent=...)
winform.add(
button={cls="button";text="恢复最初的";left=435;top=403;right=543;bottom=433;z=4};
button4={cls="button";text="从大到小排序";left=172;top=401;right=280;bottom=431;z=2};
button5={cls="button";text="从小到大排序";left=294;top=403;right=402;bottom=433;z=3};
listview={cls="listview";left=6;top=6;right=700;bottom=372;bgcolor=16777215;edge=1;editable=true;fullRow=1;gridLines=1;hscroll=1;vscroll=1;z=1}
)
/*}}*/
winform.listview.insertColumn("编号",200)
winform.listview.insertColumn("内容",200)
winform.listview.insertColumn("备注",-1)
//添加10行数据
for(i=1;10;1){
var num = math.random(1,10)
winform.listview.addItem(text={num;num+"a"};iItem=winform.listview.count;)
}
var tabOld = winform.listview.items;
winform.button4.oncommand = function(id,event){
//排序,
var tab = winform.listview.items;
//console.dump(tab)
//按数组某数值从大到小排序
table.sort(tab,function(b){ return tonumber(b[1]) < tonumber(owner[1]) })
//console.dump(tab)
winform.listview.clear();
winform.listview.items = tab;
}
winform.button5.oncommand = function(id,event){
//排序
var tab = winform.listview.items;//items是个双层数组
//console.dump(tab)
//按数组某数值从小到大排序
table.sort(tab,function(b){ return tonumber(b[1]) > tonumber(owner[1]) })
//console.dump(tab)
winform.listview.clear();
winform.listview.items = tab;
}
winform.button.oncommand = function(id,event){
winform.listview.items = tabOld;
}
winform.show()
win.loopMessage();
这个排序是比较常用的功能,欢迎大家转载保存.