//Tabulator import win.ui; /*DSG{{*/ var winform = win.form(text="tabulator - 表格组件(点击编辑,可排序,支持响应式数据)";right=759;bottom=383;bgcolor=16777215) winform.add( button={cls="button";text="修改网页响应式数据";left=556;top=322;right=736;bottom=368;db=1;dr=1;z=3}; edit={cls="edit";left=16;top=324;right=534;bottom=370;autohscroll=false;db=1;dr=1;dt=1;edge=1;multiline=1;vscroll=1;z=2}; static={cls="static";text="Static";left=6;top=7;right=743;bottom=316;clip=1;db=1;dl=1;dr=1;dt=1;transparent=1;z=1} ) /*}}*/ import web.form; var wb = web.form(winform.static); assert(wb,"仅支持 IE11") //注意 Win10/11 自带 IE11, Win7 已逐渐退出市场一般没必要再考虑 import JSON; wb.external = { getReactiveData = function(event){ if( !owner.jsReactiveData ) { var data = { {id:1, name:"Oli Bob", age:"12", col:"red", dob:"",enabled:true}, {id:2, name:"Mary May", age:"1", col:"blue", dob:"14/05/1982",enabled:true}, {id:3, name:"Christine Lobowski", age:"42", col:"green", dob:"22/05/1982",enabled:true}, {id:4, name:"Brendon Philips", age:"125", col:"orange", dob:"01/08/1980",enabled:true}, {id:5, name:"Margret Marmajuke", age:"16", col:"yellow", dob:"31/01/1999",enabled:false}, }; /* 转换为纯 JS 对象。 只有 web.form 控件里才需要使用 wb.jsObject 以解决 IE 内核的 JSON 兼容问题。 web.view 控件里则可以直接返回 JSON.stringify(data) 并在网页中使用 JSON.parse(result) 转换为 JS 对象。 web.view 控件用 wb.export 导出的本地 aardio 函数则会自动使用 JSON 转换参数与返回值。 */ owner.jsReactiveData = wb.jsObject(data,true); } return owner.jsReactiveData; } onRowClick = function(id,name){ winform.edit.print(id,name); } } winform.button.oncommand = function(id,event){ var jsData = wb.external.getReactiveData(); //修改 JS 数据,Tabulator 表格自动刷新。 jsData[1].age = jsData[1].age + 10; } /* 文档: http://tabulator.info/docs/4.9/quickstart 下面使用 CDN 服务器加载 JS 文件初始化可能有点慢,实际开发请先下载到本地。 aardio 可直接支持加载资源目录(发布可嵌入 EXE)下的网页文件。 */ wb.html = /**
**/ winform.show(); win.loopMessage();