分享

extaspnet 的grid如何禁止选中某些行

 绚爷好人图书馆 2014-06-24

extaspnet里应该没有封装相关方法,那就baidu吧

baidu是最好的老师,虽然它是流氓,但我承认中文资料搜索它就是老大,英文资料则绝对是google

找到答案:如下



  1. var sm = new Ext.grid.CheckboxSelectionModel({  
  2.         dataIndex:"id",  
  3.         listeners:{'beforerowselect': function( SelectionModel, rowIndex, keepExisting,record ) {  
  4.         if($.trim(record.data.ReleaseFlag)=='0'||$.trim(record.data.ReleaseFlag)=='-'){ //用户状态不正常  
  5.         //Ext.Msg.alert("提示信息","当前记录已经发布,无法再修改或发布!");  
  6.         //SelectionModel  
  7.         return false; //不能进行选择  
  8.         }else{  
  9.         return true;  
  10.         }  
  11.         }}  
  12.     });  

尝试把代码写到页面 onReady事件里面添加addlistens,调试几次都不成功,遂搬出老方法,替换render

代码如下:

 

  1. protected override void Render(HtmlTextWriter writer)  
  2. {  
  3.     StringWriter strWriter = new StringWriter();  
  4.     base.Render(new HtmlTextWriter(strWriter));  
  5.     writer.Write(  
  6.         strWriter.ToString()  
  7.         .Replace("var x2_sm=new Ext.grid.CheckboxSelectionModel({singleSelect:false});",  
  8.         "var x2_sm = new Ext.grid.CheckboxSelectionModel({listeners:{'beforerowselect':"+  
  9.         "function( SelectionModel,rowIndex,keepExisting,record)"+  
  10.         "{if (rowIndex==2){return false;}else{return true;}},singleSelect:false}});")  
  11.         );  
  12. }  

 

代码中x2_sm是我测试页面中grid的CheckboxSelectionModel,直接透过替换法添加了beforerowselect事件

这事件中测试,让grid第3行无法选中。

运行测试,效果满意,第3行无法选中,单击行,点行首checkbox,全选都不行,目的达到,收工,因为是后台代码,控制逻辑也更方便,还可以配合rowcolor行颜色的方法来加以标识,则效果完美

 

 

 

 

 

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多