一、计算列
SmartGrid的
计算列不是严格意义上的计算列,只实现前台相关栏位值改变时通过表达式计算出计算列的值,如果是从数据库中获取的数据,必须显式包含该计算列在数据源中,否则该列无值。
可通过设置栏位的Expression属性设置计算表达式。
例:
Expression="列A-列B"
二、栏位数据校验
方法一、SmartGrid行检验事件(OnRowDataCheck)在行改变时自动触发,可以设置OnRowDataCheck属性实现自己的校验代码。
例:
<SmartWeb:SmartGrid ID="grid" runat="server" OnRowDataCheck="checkInput" >
<Columns >
</Columns >
</SmartWeb:SmartGrid >
然后定义checkInput方法:
function checkInput(grid,ev)
{
if(grid.getCellValue(grid.row,"CompanyName") == "")
{
alert("公司名称不能为空!");
ev.checkStatus = "retry"; //retry:重新录入、cancel取消sucess校验成功(默认值)
grid.focus(grid.row,"CompanyName");
}
}
注:grid.getCellValue方法的作用是获取行中指定栏位的值。方法二、在页面提交前,SmartGrid触发OnCheckNullRow脚本事件实现检验。
在服务器端设置判断是否为空的脚本方法名:
this.DataGrid.OnCheckNullRow = "myCheckNullRow";
客户端定义脚本方法内容:
function myCheckNullRow(grid,ev)
{
var val = grid.getCellValue(ev.row,"存货");
if(val =="")
{
ev.isNull = true;//如果某行的存货列没有录入,可以认为该行的录入无效
}
return ;
}
方法三、在栏位对应的htc文件中扑获数据改变(如onchange)时机校验。
代码略。嬪SO(uYez'