欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » ASP.Net » 正文

热门阅读

SmartGrid控件使用教程(二)-前台脚本编程

创建时间:2012年02月28日 16:00  阅读次数:(5110)
分享到:
行校验事件
在编辑状态下,用户完成行的编辑,离开当前行时,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中文帮助文档下载
来源:
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论1条
  • #1楼  评论人:匿名  评论时间:2012-4-22 16:43:09
  • 谢谢LZ了
发表评论:
留言人:
内  容:
请输入问题 16+57=? 的结果(结果是:73)
结  果: