听棠.NET

用积极乐观的心态,面对压力
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

UltraWebGrid的客户端放弃PostBack功能!

Posted on 2005-03-03 13:47  听棠.NET  阅读(2970)  评论(2编辑  收藏  举报

我举个现实中的例子先:
  一个订单明细录入的页面,Grid上有:料品ID,料品名,单位,需求数量,单价,小计,备注等字段,在录入一条明细时,每一列都是允许客户进行修改的,但对于某些字段是需要Postback的,比如料品ID输入后马上PostBack,可以判断料品是否存在,存在的话,可以取到料品名与单位,或者还有当前库存等信息,而有些字段如备注,也可以修改,但是不需要提交。
  这在UtralWebGrid是很容易实现的:
   只要给Grid绑定CellUpdate的服务器端事件,在事件中得到料品ID后获取信息到Grid行中。

   但这样的话,每个可以Update的列都会触发此事件,导致备注也被PostBack,这是我们不希望的。
  因此,我们给UltraWebGrid添加客户端的AfterCellUpdateHander的客户端事件,

在此客户端脚本中判断此Cell的列名,如果是备注列,则可以使用
    igtbl_cancelPostBack(gridName); //gridName为此Grid的名称
   方法就可以放弃服务器端的事件触发了。类似如下代码:

    function UltraWebGrid1_AfterCellUpdateHandler(gridName, cellId){
            
//Add code to handle your event here.
            var cell = igtbl_getCellById(cellId);
            
if(cell.Column.Key!="CompanyName")
                igtbl_cancelPostBack(gridName);


   使用igtbl_cancelPostBack(gridName);方法给我带来了很大的方便,让我更能自如的控制客户端与服务端的交互。 
 此功能在NetAdvantage 2004 vol 3 与2005 vol 1中都支持!!