(1) Ext.Net 中CheckboxSelectionModel在一定的条件下隐藏特定的row

<head id="Head1" runat="server">
    <title></title>
    <script  type="text/javascript">
           var MyCheckBox = function (v, p, record) {                //固定格式,不变
            if (record.data.SPECVER <4) {     //红色的字体为栏位名称(type= int)
                return "";
            }

return '<div class="x-grid3-row-checker">';      //固定格式,不变
        };
    </script>   
</head>

并在下面的代码添加CustomConfig,Listeners属性  :

<SelectionModel>
                <ext:CheckboxSelectionModel ID="CheckboxSelectionModel1"   runat="server">   //生成CheckBox
                    <CustomConfig>          
                          <ext:ConfigItem Name="renderer" Value="MyCheckBox" Mode="Raw" />        //javascript Function 名称
                     </CustomConfig>
                     <Listeners>
                           <BeforeRowSelect Handler="return record.data.SPECVER>=4;" />         //栏位名称,需要变动
                     </Listeners>
                </ext:CheckboxSelectionModel>                                                           
          </SelectionModel>

(2 )Ext.Net 中动态的隐藏(Hidden属性)CheckBox  (CheckboxSelectionModel ):

protected void btnQueryHistory_Click(object sender, Ext.Net.DirectEventArgs e)

{

GridPanel. ColumnModel.SetHidden(0,true);          //(红色的)为GridPanel 名称   ,(绿色的)为要隐藏的栏位

}

 (3)Ext.Net中获得被多选中的row :

1.))集中批次处理:

RowSelectionModel lv_RowSelected = this.gpControlInfo.SelectionModel.Primary as RowSelectionModel;
              if (lv_RowSelected.SelectedRows.Count > 0)

{

string sysIDS = "";
                     foreach (SelectedRow row in sm.SelectedRows)
                    {
                          sysIDS += row.RecordID + ";";              //RecordID的设置
                    }

}
              lv_RowSelected.ClearSelections();     //需要清空所有,否则,下次没有选中任何的时候,SelectedRows.Count 还是为上次的值

RecordID的设置,在Store的代码中添加(红色的部分):

<ext:Store ID="stoControlInfo" runat="server" GroupDir="ASC">
                <Reader>               
                    <ext:JsonReader IDProperty ="FORMSYSID">            //  为RecordID的值,根据需要相应的更改           
                    </ext:JsonReader>                
                </Reader>
                <AutoLoadParams>
                    <ext:Parameter Name="start" Mode="Raw" Value="0">
                    </ext:Parameter>
                    <ext:Parameter Name="limit" Mode="Raw" Value="15">
                    </ext:Parameter>
                </AutoLoadParams>
         </ext:Store>

2.))  单个的处理:

<ext:Button 
                  ID="" 
                  runat="" 
                  Text="" 
                  Icon=""                                                    
                  X ="" 
                  Y ="" >

<DirectEvents> 
                        <Click OnEvent="btnActivateForm_Click">                 //后台Button事件 
                              <ExtraParams>     //添加如下代码,gpControlInfo为GridPanel的ID
                                    <ext:Parameter Name="Values" Value="Ext.encode(#{gpControlInfo}.getRowsValues({selectedOnly:true}))" Mode="Raw" />
                              </ExtraParams>  
                         </Click>                                     
                  </DirectEvents>
        </ext:Button>

后台的处理:

          string json = e.ExtraParams["Values"];

          Dictionary<string, string>[] lv_Row = JSON.Deserialize<Dictionary<string, string>[]>(v_Json);
            foreach (Dictionary<string, string> row in lv_Row)
            {
                foreach (KeyValuePair<string, string> keyvaluePaire in row)
                {

//可以取得所有的栏位及栏位值,

//也可以取得想要的(相对应的)
                    if (keyvaluePaire.Key == "SPECNO")
                    {
                        pv_StrSpecNO = keyvaluePaire.Value;
                    }
                    else if (keyvaluePaire.Key == "SPECVER")
                    {
                        pv_StrSpecVer = keyvaluePaire.Value;
                    }
                }

}

(4)Ext.Net后台动态实现GridPanel栏位的添加:

this.stoControlInfo.AddField(new RecordField("SYSID", RecordFieldType.String));
            this.stoControlInfo.AddField(new RecordField("FORMID", RecordFieldType.String));

this.gpControlInfo.ColumnModel.Columns.Add(new Column { Header = "SYSID_Show", DataIndex = "SYSID", Width = 10 });
            this.gpControlInfo.ColumnModel.Columns.Add(new Column { Header = "FORMID_Show", DataIndex = "FORMID", Width = 130 });

DataIndex必须和RecordField的相同(如红色的),要不然有栏位显示,但是下面没有数据的哦!

注:以上经过测试是正确的,请根据自己的需要做出变通,不对的地方或者是还有好的方法请告知,不胜感激!

另外:(1)一个好的Ext.Net基础学习网站是:www.Ext.Net,有各控件的实例实现

(2)相关知识查找可以在官网(www.Ext.Net)中的右上角的"Search“框中进行查找,比在Baidu能查到更多的相关技术及实现!查找的是英文版的哦!

转载于:https://www.cnblogs.com/alexzp/archive/2011/12/23/2298890.html

Ext.Net中CheckboxSelectionModel的动态隐藏(显示),一定条件下的隐藏(不让选择),获得多选栏位的信息,及后台控件的动态创建...相关推荐

  1. qt中QHBoxLayout或QVBoxLayout布局内控件的动态生成与显示

    ---恢复内容开始--- qt中QHBoxLayout或QVBoxLayout布局内控件的动态生成与显示 打个比方,我现在写个小例子,这个小例子是这样的,整个界面分为俩个部分,分为上半部分和下半部分, ...

  2. Linux中使用du -d n 显示当前文件目录下文件夹的大小

    Linux中使用du -d n 显示当前文件目录下文件夹的大小 du -d n 其中 du 代表disk usage 硬盘使用 d 代表directory n 代表显示当前目录下文件夹的层数 root ...

  3. \t\t使用INDY的IdMappedPortTCP控件实现动态的HTTP代理服务器

    在工作中,需要一个时间控制条件非常复杂的代理服务器,因此只能自编.从网络中找到一些用ServerSocket和ClientSocket开发的代理服务器源代码,比较复杂.因此想用INDY控件组中的IdM ...

  4. 安卓控件大小动态文字排版_动态Web排版:爆炸文字

    安卓控件大小动态文字排版 Lately I've been interested in creating motion typography for the web. Making shattered ...

  5. html中设置元素隐藏显示,细说HTML元素的隐藏和显示

    CSS文档对HTML的显示和隐藏有2个属性可供选择: 1.display 2.visiblity 这2个有什么区别呢? display: display版本:CSS1/CSS2 兼容性:IE4+ NS ...

  6. VC程序中实现控件的动态生成与响应

    动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的. 一.创建动态控件: 为了对照,我们先来看一下静态控件的创建. 放置静态控件时必须先建立一个容器,一般是对话框, ...

  7. 【Silverlight】Bing Maps开发应用与技巧二:自定义图钉标注控件和动态ToolPanel

    在Bing Maps Silverlight Control中以及为我们提供了地图图钉控件Pushpin,我曾经在< 使用图钉层(Pushpin layer)及地图图层(MapLayer)> ...

  8. android 动态添加删除控件,求教Android,动态添加到控件能动态删除吗?

    protected View createView() {//动态添加组件 Button btn = new Button(this);//动态创建按钮 btn.setId(index++); btn ...

  9. 使用Timer计时器、PictureBox图片控件做动态图片

    用Timer,PictureBox实现动态图片显示 Timer控件主要属性.事件和方法 属性 说明 Interval 事件发生的频率,以毫秒为单位 Enabled 是否定时引发事件 事件 说明 Tic ...

最新文章

  1. python scrapy框架原理_Scrapy框架的工作原理是什么?
  2. Linux c语言虚拟串口,利用socat和cutecom实现Linux虚拟串口通信
  3. python基础知识~ 等值判断和码
  4. spring -boot定时任务 quartz 基于 MethodInvokingJobDetailFactoryBean 实现
  5. viewport是什么?(江湖称响应式web设计)
  6. 记一次对学校的渗透测试
  7. 用FFmpeg编码h264视频介绍
  8. leetcode 205. 同构字符串(hash)
  9. linux 正则查找email_Linux--正则表达式--详解
  10. java中double类型占几个字节_Java中基本数据类型占几个字节多少位
  11. oracle报1653解决办法,ORA-1653的问题
  12. 关于VSCode安装 python 语法检测器插件 pylint 配置(Mac)
  13. Maxscript基本数据类型(二):Name
  14. 如何批量打印流水且重复的条码数据
  15. 功率谱密度的一个小理解
  16. 常用短信平台一览,记得收藏哦
  17. Windows XP 上网提示:您的时钟快了/慢了
  18. 【纪中受难记】——Day13:还有两天放假
  19. 毕业设计--2020.02.18 奇耘4.2寸墨水屏的程序设计思路分享
  20. 刘强东:我请你来,不是让你证明我错了!

热门文章

  1. 循环结构作业c语言,C语言循环结构练习题带答案(最新整理)
  2. 怎么查看python是否安装好了pyinstaller_Python PyInstaller安装和使用教程(详解版)...
  3. jquery 操作CSS总结
  4. strtol() 字符串转长整型函数
  5. TCP/IP学习笔记(九)TCP报文段首部格式
  6. 防火墙(3)——iptables(1)
  7. |(与或移位等)的工程运用
  8. nafxcw.lib与LIBCMT.lib在vs2008中链接冲突解决方案
  9. java idea连数据库报错:Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone'时区错误
  10. 牛客IOI周赛19-普及组 C.小y的旅行