行校验事件在编辑状态下,用户完成行的编辑,离开当前行时,SmartGrid触发OnRowDataCheck脚本事件,程序员可以响应该事件以对用户的录入进行校验。
在服务器端设置行数据校验的脚本方法名
this.DataGrid.OnRowDataCheck = "myRowDataCheck";
客户端定义脚本方法内容
function myRowDataCheck(grid,ev)
{
var val = grid.getCellValue(ev.row,"发货");
if(val =="false")
{
ev.checkStatus = "cancel";//用户录入的数据非法,取消用户的录入
}
else if(val == "true")
{
ev.checkStatus = "retry";//用户录入的数据非法,让用户重新录入
}
return;
}
myRowDataCheck有两个参数
grid 当前的Grid
ev 事件参数对象
ev有三个属性
ev.row 要校验的行的索引
ev.columnName 用户要离开的列名
ev.checkStatus 程序员校验的结果,默认是"success"
格式化脚本方法-FormatFunction除了系统提供的格式化方式外,程序员还可以定义自己的格式化方法(脚本方法)。程序员在列定义中设置格式化方法名,然后在客户端实现相关的方法。
在服务器端列定义时设置格式化脚本方法名
col.FormatFunction = "myformat";
客户端定义脚本方法
function myformat(val,format,digits)
{
if(parseInt(val) >100)
{
return "<font color='red' >"+ val +"</font >";//如果用户录入的值大于100,则显示红色。程序员可以返回HTML
}
return val;
}
myformat有三个参数:
val 当前单元格的值,SmartGrid调用时传入
format SmartGridColumn类DataFormatString属性值,SmartGrid调用时传入
digits SmartGridColumn类Scale属性值,SmartGrid调用时传入
键盘回车事件在浏览状态下,当用户键盘回车时,程序员可以响应该事件。
在服务器端设置响应键盘回车的脚本方法名
this.DataGrid1.OnRowReturnKeyStroked = "myRowReturnKeyStroked";
客户端定义响应脚本方法内容
function myRowReturnKeyStroked(grid,ev)
{
}
myRowClicked有两个参数:
grid 当前SmartGrid对象
ev 单击事件参数对象,SmartGrid调用时传入
ev对象目前没有可以访问的属性,留作扩展
进入行事件用户在通过上下光标键、回车键进行行间移动时,在进入某行时,SmartGrid触发OnEnterRow脚本事件,程序员可以响应该事件来做相关的处理。
在服务器端设置响应进入行事件的脚本方法名
this.DataGrid.OnEnterRow = "myEnterRow";
客户端定义脚本方法内容
function myEnterRow(grid,ev)
{
alert(ev.row);
return;
}
myEnterRow有两个参数
grid 当前的Grid
ev 事件参数对象
ev有一个属性
ev.row 要进入的行的索引
懒加载事件Grid设置为懒加载,在滚动条移到最低端时,SmartGrid触发OnLoadOnDemand脚本事件,程序员可以响应该事件以进行数据的懒加载。
在服务器端设置懒加载的脚本方法名
this.DataGrid.OnLoadOnDemand = "myLoadOnDemand";
客户端定义脚本方法内容
function myLoadOnDemand(grid,ev)
{
//这是示例,实际上数据可以一般会通过webservice behavior从服务器端取
var dom = new ActiveXObject("MSXML.DOMDocument");
dom.loadXML("<xml version='1.0' encoding='gb2312' ><detail ><row k='0.6' editprop='o' no='CD034' name='TCL彩电' factory='TCL公司' address='福建' num='523' contact='老李'/ ><row k='0.5' editprop='o' no='CD096' name='康佳彩电' factory='康佳公司' address='四川' num='59' contact='李工'/ ><row k='0.5' editprop='o' no='RJ098' name='NC产品' factory='用友公司' address='北京' num='668' contact='王文京'/ ><row k='0.5' editprop='o' no='YJ908' name='联想电脑' factory='联想集团' address='北京' num='99' contact='柳传至'/ ><row k='0.5' editprop='o' no='LY897' name='路由器' factory='华为集团' address='北京' num='556' contact='赵川'/ ><row k='0.5' editprop='o' no='XS908' name='美格' factory='美格公司' address='美国' num='560' contact='开心'/ ><row k='0.5' editprop='A' no='XS988' name='三星显示器' factory='三星集团' address='韩国' num='668' contact='赵小窗'/ ><row k='0.5' editprop='A' no='XS786' name='ViewSonic' factory='ViewSonic' address='美国' num='444' contact='美丽'/ ><row k='0.5' editprop='A' no='YP343' name='奔腾III' factory='INTEL' address='美国' num='891' contact='开心'/ ><row k='0.5' editprop='A' no='CP789' name='毒龙' factory='MD' address='美国' num='88' contact='开心'/ ><row k='0.5' editprop='A' no='XS908' name='153V' factory='三星' address='韩国' num='44' contact='开心'/ ></detail >");
grid.append(dom.documentElement);
//grid的append方法是追加数据
//grid的clear方法是清空当前Grid中的数据
//grid的fill方法是先清空当前Grid中的数据,然后再将数据加到Grid当中。
e.currentPageIndex ++;
}
myLoadOnDemand有两个参数
grid 当前的Grid
ev 事件参数对象
ev有三个属性
ev.pageCount 页数
ev.currentPageIndex 当前页索引
ev.pageSize 页面大小
响应键盘回车事件在浏览状态下,当用户键盘回车时,程序员可以响应该事件。
在服务器端设置响应键盘回车的脚本方法名
this.DataGrid1.OnRowReturnKeyStroked = "myRowReturnKeyStroked";
客户端定义响应脚本方法
function myRowReturnKeyStroked(grid,ev)
{
}
myRowClicked有两个参数:
grid 当前SmartGrid对象
ev 单击事件参数对象,SmartGrid调用时传入
ev对象目前没有可以访问的属性,留作扩展
浏览状态下鼠标右击事件在浏览状态下,当用户在行上进行鼠标右击时,程序员可以响应该事件。
在服务器端设置响应鼠标双击的脚本方法名
this.DataGrid1.OnRowRightButtonUp = "myRowRightButtonUp";
客户端定义响应脚本方法
function myRowRightButtonUp(grid,ev)
{
alert(ev.row);
}
myRowRightButtonUp有两个参数:
grid 当前SmartGrid对象
ev 单击事件参数对象,SmartGrid调用时传入
ev对象有两个属性:
ev.row 用户鼠标双击所在行的索引
响应用户单击行事件在浏览状态下,当用户在行上进行单击时,程序员可以响应该事件。
在服务器端设置脚本方法名
this.DataGrid1.OnRowClicked = "myRowClicked";
客户端定义响应脚本方法
function myRowClicked(grid,ev)
{
alert(ev.row);//当前行的索引
alert(ev.columnName);//用户鼠标单击所在的列的列名
}
myRowClicked有两个参数:
grid 当前SmartGrid对象
ev 单击事件参数对象,SmartGrid调用时传入
响应用户双击行事件在浏览状态下,当用户在行上进行双击时,程序员可以响应该事件。
在服务器端设置响应鼠标双击的脚本方法名
this.DataGrid1.OnRowDblClicked = "myRowDblClicked";
客户端定义响应脚本方法
function myRowDblClicked(grid,ev)
{
window.returnValue = grid.getSelectedData();
window.close();
}
myRowClicked有两个参数:
grid 当前SmartGrid对象
ev 单击事件参数对象,SmartGrid调用时传入
ev对象有两个属性:
ev.row 用户鼠标双击所在行的索引
ev.columnName 用户双击时鼠标所在列的列名
本教程电子档下载:
SmartGrid中文帮助文档下载