欢迎来到.net学习网

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

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

热门阅读

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

创建时间:2012年02月27日 17:26  阅读次数:(7353)
分享到:
判断空行事件
在编辑状态下,页面提交前,SmartGrid触发OnCheckNullRow脚本事件,程序员可以响应该事件以判断行是否为空。

在服务器端设置判断是否为空的脚本方法名
this.DataGrid.OnCheckNullRow = "myCheckNullRow";

客户端定义脚本方法内容
function myCheckNullRow(grid,ev)
{
var val = grid.getCellValue(ev.row,"存货");
if(val =="")
{
ev.isNull = true;//如果某行的存货列没有录入,可以认为该行的录入无效
}
return;
}

myCheckNullRow有两个参数
grid 当前的Grid
ev 事件参数对象

ev有两个属性
ev.row 要判断是否为空的行的索引
ev.isNull 程序员判断的结果,默认是false,不为空

鼠标右击事件
在浏览状态下,当用户在行上进行鼠标右击时,程序员可以响应该事件。

在服务器端设置响应鼠标双击的脚本方法名
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调用时传入

行删除后事件
在编辑状态下,在用户进行行删除操作时,在删除结束后,SmartGrid触发OnRowDeleted脚本事件,程序员可以通过响应该事件来进行删除后处理。

在服务器端设置响应删除的脚本方法名
this.DataGrid.OnRowDeleted = "myRowDeleted";

客户端定义脚本方法内容
function myRowDeleted(grid,ev)
{
   if(ev.row == 1)
   {
        
   }
    
   return ;
}

myRowDeleted有两个参数
grid 当前的Grid
ev 事件参数对象

ev有一个属性
ev.row 用户删除行的索引

行删除事件
在编辑状态下,在用户进行行删除操作时,在开始删除行之前,SmartGrid触发OnRowDeleting脚本事件,程序员可以通过响应该事件来确定是否可以进行删除。

在服务器端设置响应删除的脚本方法名
this.DataGrid.OnRowDeleting = "myRowDeleting";

客户端定义脚本方法内容
function myRowDeleting(grid,ev)
{
   if(ev.row == 1)
   {
        ev.cancel = true; //取消用户的删除请求
   }
   else
   {
        ev.cancel = false; //接受用户的删除请求
   }
    
   return ;
}

myRowDeleting有两个参数
grid 当前的Grid
ev 事件参数对象

ev有两个属性
ev.row 用户要删除行的索引
ev.cancel 是否要取消删除,默认ev.cancel = true

行双击事件
在浏览状态下,当用户在行上进行双击时,程序员可以响应该事件。

在服务器端设置响应鼠标双击的脚本方法名
this.DataGrid1.OnRowDblClicked = "myRowDblClicked";

客户端定义响应脚本方法内容
function myRowDblClicked(grid,ev)
{
    window.returnValue = grid.getSelectedData();//返回用户选择的值xml            
    window.close();
}


myRowClicked有两个参数:
grid 当前SmartGrid对象
ev 单击事件参数对象,SmartGrid调用时传入

ev对象有两个属性:
ev.row 用户鼠标双击所在行的索引
ev.columnName 用户双击时鼠标所在列的列名

行添加后事件
在编辑状态下,用户在添加完行后,SmartGrid触发OnRowAdded脚本事件,程序员可以通过响应该事件来处理添加完后的操作。

在服务器端设置响应添加的脚本方法名
this.DataGrid.OnRowAdded = "myRowAdded";

客户端定义脚本方法内容
function myRowAdded(grid,ev)
{
    alert(ev.row);
    return ;
}

myRowAdded有两个参数
grid 当前的Grid
ev 事件参数对象

ev有一个属性
ev.row 添加行所在的索引

行添加事件
在编辑状态下,在用户进行行添加操作时,在开始添加行之前,SmartGrid触发OnRowAdding脚本事件,程序员可以通过响应该事件来确定是否可以添加行。

在服务器端设置响应删除的脚本方法名
this.DataGrid.OnRowAdding = "myRowAdding";

客户端定义脚本方法内容
function myRowAdding(grid,ev)
{
   if(grid.rowCount == 10)
   {
        ev.cancel = true; //取消用户的添加请求
   }
   else
   {
        ev.cancel = false; //接受用户的添加请求
   }
    
    return ;
}


myRowAdding有两个参数
grid 当前的Grid
ev 事件参数对象

ev有一个属性
ev.cancel 是否要取消添加,默认ev.cancel = false

本教程电子档下载:SmartGrid中文帮助文档下载?
来源:
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf

打赏

取消

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

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

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

最新评论

共有评论11条
  • #1楼  评论人:匿名  评论时间:2014-4-8 13:44:04
  • 你好,怎么防止输入之后,用鼠标将光标点到grid外,导致列的change事件不被触发。
  • #2楼  评论人:Wyf  评论时间:2014-4-8 21:14:48
  • 这些都是可以在htc文件中处理的。

    我已经不用这个控件了,这个控件几年没有更新了,不太稳定,容易出错,而且不支持高版的浏览器。
  • #3楼  评论人:匿名  评论时间:2014-4-9 10:40:41
  • 是的,现在项目已经用这个了,暂时没有可以替代的,只能继续用。一直被这个问题困然,找不到办法。如果您有时间,麻烦看看。
  • #4楼  评论人:匿名  评论时间:2014-4-9 11:45:16
  • 请问您现在是用什么框架呢,功能类似这个表格的。
  • #5楼  评论人:Wyf  评论时间:2014-4-9 16:46:40
  • 我现在用的是MiniUI这个控件,但两者完全不一样,改动量特别大,还得自己封装一些东西。
  • #6楼  评论人:Wyf  评论时间:2014-4-9 16:48:40
  • SmartGrid在某些情况下可能会取不到栏位的值,或者赋值错误等情况,造成数据库数据错误,这个问题很严重啊。 不得已,必须换。
  • #7楼  评论人:匿名  评论时间:2014-4-9 17:16:32
  • 其他还好,就是这个这个问题至今未解决,他们的客服收钱就快,根本没售后一说。你也用minui啊,那你可以写点教程了,最近看了下,这个确实不错,官方论坛虽然好,但是很多东西是问一点会一点。

    现在我一个人做一个项目,从服务器控件换成全部客户端控件,工作量太大了,公司又不愿意给人给钱,现在这个IE9以上就得用兼容模式,太郁闷了。
  • #8楼  评论人:Wyf  评论时间:2014-4-10 9:24:59
  • 这个问题,你可以试试在栏位失去焦点事件中处理。

    MiniUI这个控件我也正处在研究阶段,现在工作重点是把所有用到SmartGrid的地方换过过,几百个页面,也够呛的。
  • #9楼  评论人:匿名  评论时间:2014-4-10 13:30:22
  • 栏位失去焦点事件是什么,就是不知道是哪个,好像没有吧,只有在htc里面change事件,但是这个事件在用鼠标点击,而不是用回车触发的时候,不会触发到。

    我也打算把一些数据量比较大的先改成miniui
    q123126@126.com
    我的邮箱,方便的话,给我发你的qq吧,大家一起交流学习
  • #10楼  评论人:Wyf  评论时间:2014-4-10 14:19:04
  • 嗯,一起学习,我的QQ:879621940
  • #11楼  评论人:Wyf  评论时间:2014-4-10 14:24:23
  • SmartGrid的每个文本框都是一个input,所以都会有失去焦点事件,都可以在htc文件中定义的。
发表评论:
留言人:
内  容:
请输入问题 42+17=? 的结果(结果是:59)
结  果: