硕正控件 autoLoad 页面加载时是否自动加载表格数据 默认true,如果自己需要根据页面条件查询数据 建议设置为false 自己去查询加载数据。
属性的定义, 例如:
<div class="treelist" objid="grid"
builder="t1.xml"
url="data.do">
</div>
在上面的例子中, 除class为自动初始化控件的标识以外, objid、 builder、 url 都是表格的初始化属性。
下面是所有属性列表:
浏览器将以objid的值为变量名创建一个全局变量指向该表格。
该属性是可选的。
例:
<div class="treelist" objid="grid"></div>
在上面的例子中, 表格的 objid 为 grid , 在表格初始化完成之后, 在js中就可以用 grid
来访问表格了。
builder 是一个字符串, 它指向一个 xml 文件, 这个文件描述了表格的属性和列数据,
例如:
builder="${pageContext.request.contextPath}/xml/scgrid/netbank/test.xml"
对于一个表格来说, builder 和 url 两个属性是必不可少的,
注意创建 xml 文件时, 其存放路径应在 /xml/scgrid/
下与模块同名的目录中,
关于 xml 的详细配置, 请参考Builder规则
url 是一个 action 的地址, 这个 action 接受表格的查询请求, 输出表格所需的数据。
此项也是必填的。
设置 bBar="default"
显示分页条,
设置 bBar=""
或删除该属性则不显示分页条
表格高度, int型, 不要带单位符号。
当 height 属性有值且不为 0 时, autoHeight 属性失效。
autoHeight默认为true,
表格会自动适应页面高度, 并且将页面滚动条隐藏掉, 假如不希望页面滚动条被隐藏, 可设置 noPageScroll="false"
默认为true,
隐藏body的滚动条, 效果与 $("body").css("overflow", "hidden")
相同
一个 jquery 选择器, 指向一个 form, 例如: queryForm="#form1"
,
绑定了 queryForm 以后, 表格每次刷新(refresh)时都会带上该 form 里的数据提交到服务器端。
假如该 form 中有 type="submit" 的按钮, 则不需要再指定 queryButton。, 则该按钮会自动成为 queryButton。
一个 jquery 选择器, 指向一个按钮, 例如: queryButton="#btn1"
,
这会绑定一个按钮, 点击该按钮会触发表格的 refresh(刷新)动作。
假如queryForm 中存在 type="submit" 的按钮, 则不需要再指定 queryButton。
true 或 false, 默认为 true,
是否进行服务器端排序。
一个函数, 点击 queryButton 时被调用, 假如返回 false 则会取消表单刷新的动作。
例:
<script>
function doCheck(){
if(xyz){
return false;
}else{
return true;
};
}
</script>
<div class="treelist" objid="grid"
builder="t1.xml"
url="data.do"
checkForm="doCheck"
>
</div>
页面加载时是否自动加载表格数据, 默认为true
是否显示复选框,
可以是 true 或 false 或者一个函数,
如果是一个函数的话, 在函数中返回 true 或 false,
例如:
<script>
function showCheckbox(index, row){
if(row.xxx){
return false;
}else{
return true;
};
}
</script>
<div class="treelist" objid="grid"
builder="t1.xml"
url="data.do"
checkbox="showCheckbox"
>
</div>
formatter 是一个函数, 它在表格每次加载完数据以后被调用,
formatter 对表格性能影响较大, 请尽量不要使用, 可尝试通过在builder.xml中实现相同的效果。
formatter例子:
function gridFormatter(index, row){
// index 为行号, row 为行数据
this.setLink(index, "country");
this.method("SetCellText", index, "shipname", row.shipname + ‘号‘);
}
<div objid="grid" class="treelist"
builder="test.xml"
url="test.do"
formatter="gridFormatter">
</div>
个性化布局默认是启用的, 也就是说 allowUserConfig="true"
是可以不写的。
假如你希望表格不记忆个性化布局的话, 可以设置: allowUserConfig="false"
通过参数allowUserConfig参数启用“个性化记忆布局”功能, 在页面被刷新或者被关闭时, 自动将表格的显示列、列顺序、宽度等信息保存到数据库中, 下次该用户再打开此页面时将看到与上次同样的布局。
用户在其它电脑登录也可看到上次登录的布局。
该参数默认不启用, 如需启用需要在标签中加上:
allowUserConfig="true"
用户如希望还原到原始的布局, 可以点击右键“恢复默认布局”。
<div objid="t1" class="treelist" builder="t1.xml" bbar="default" allowUserConfig="true" url="data.do"> </div> <!--引用控件库> <script src="${pageContext.request.contextPath}/js/fn/1.5/fn.js?use=widget/supcan"></script>
事件的定义跟属性类似。
注意函数名后面不要加括号。
例:
<div class="treelist" objid="grid"
builder="t1.xml"
url="data.do"
onLoad="showMessage">
</div>
<script>
function showMessage(){
alert("treelist is loaded");
}
</script>
<script src="${pageContext.request.contextPath}/js/fn/1.5/fn.js?use=widget/supcan"></script>
注意: 事件所指的函数应该定义在
<script>fn.use("widget/supcan")</script>
或者
<script src="${pageContext.request.contextPath}/js/fn/1.5/fn.js?use=widget/supcan"></script>
之前, 否则在表格初始化时可能会因找不到函数而报错。
下面是所有事件列表:
控件初始化事件
排序事件
分页事件
刷新事件
行被选择事件
单击事件
双击事件
失去焦点事件
行被删除事件
右键菜单弹出前
右键菜单点击事件
行被勾选事件
参数:
index
: 被勾选或取消勾选的行id
row
: 被勾选或取消勾选的行data
isChecked
: true表示勾选, false表示取消勾选
本节所介绍的方法,指的是我们封装的一些常用方法以及新增方法,除此之外还有更多的原生方法, 将在下一节介绍。
方法的调用示例:
<div class="treelist" objid="grid"></div>
<script>
grid.refresh(); // 调用 refresh 方法
grid.method("MoveRow", 13, 0); // 调用原生 MoveRow 的方法
</script>
下面是所有方法列表:
调用表格的原生方法, 关于原生方法请参考“原生方法”一节。
注意:建议使用 method 代替 func,
参数:
methodName
: 方法名,
argsStr
: 参数, 如有多个参数则以\r\n分隔
例:
grid.func("MoveRow", "13\r\n0"); // 把第14行数据移至第一行前面
功能与func一致, 但参数不以\r\n分隔而以逗号分隔,
参数:
methodName
: 方法名,
argsN
: 第N个参数
例:
grid.method("MoveRow", 13, 0); // 把第14行数据移至第一行前面
刷新表格中的数据
加载一个数据对象,
参数:
data
: 要加载的数据, 应该是一个 object 对象, 并且应该符合如下结构:
{
totalRows: 3,
rows:[{},{},{}]
}
取得表格中当前的数据,
注意,取到的是一个格式如下的object对象:
{
totalRows: 3,
rows:[{},{},{}]
}
根据行号获取行数据
参数:
index
: 行号, 从 0 开始计算
例如:
var row = grid.getDataByRowIndex(0); // 取得第一行的数据
取得当前选中的行的数据(复数), 返回值是一个数组
取得当前勾选的行的数据(复数), 返回值是一个数组
注意, 与 getSelectedRows 区分
取得当前勾选的行的值(需指定field)
参数:
field
: 要取值的字段名
splitChar
: 多个值之间的分隔符, 默认为,号
返回值:
一个字符串, 例如: "01,02,03"
根据表达式删除行,
参数:
exps
: 表达式
例如:
// 删除所有 country 为 Austria 的行
grid.deleteRows("country=Austria");
删除选中(点击选中)的所有行
删除勾选(checkbox选中)的所有行
在右键菜单中加入一项,
参数:
text
: 菜单文本,
callback
: 菜单点击事件,
例:
grid.addMenu("菜单文本", function(menuId, rowIndex, colName){
alert("你在[" + rowIndex + "]行[" + colName + "]列的单元格上点击了id为[" + menuId + "]的右键菜单项");
});
清空右键菜单中新增的项
打开打印对话框
打开打印预览对话框
打开转换输出对话框
原文:https://www.cnblogs.com/guangguangzai/p/11906981.html