博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET-FineUI开发实践-16(二)
阅读量:6799 次
发布时间:2019-06-26

本文共 2181 字,大约阅读时间需要 7 分钟。

实现那还差点,在事件参数里我传了一个boolall选中状态参数,这个参数由前台给的,RowSelect 传的是index 行号,就是改这,通过$符号来分开的,

if (commandArgs.Length == 2)                {                    OnRowAllSelect(new GridRowAllSelectEventArgs(bool.Parse(commandArgs[1].ToString())));                }

  

就是这个段代码干的事。
再写成功之前,来用js试一下,打开grid_rowcommand_download.aspx文件,因为这有个全选,把js加进去
    

  注意hasClass的用法,这里判断选中还是没有选中,在Grid中打个断点,看看触发没触发

可以看到boolall参数为true,就是触发了,这时就可以在前台Grid控件里重写这个事件了。

 

正常情况下就触发成功了。
第三步封装
封装了么,当然没有,写F.ready里就不是封装啊,首先给Grid加一个属性,EnableRowAllSelectEvent 为了打开或关闭全选事件,复制EnableRowSelectEvent就行了,
///         /// 全选是否自动回发        ///         [Category(CategoryName.OPTIONS)]        [DefaultValue(false)]        [Description("全选是否自动回发")]        public bool EnableRowAllSelectEvent        {            get            {                object obj = FState["EnableRowAllSelectEvent"];                return obj == null ? false : (bool)obj;            }            set            {                FState["EnableRowAllSelectEvent"] = value;            }        }

  然后把这个用在生成方法里就可以了,用到OnFirstPreRender

string rowallselectevent = "";            if (EnableRowAllSelectEvent)            {                rowallselectevent += "$('#" + this.ID + "').find('.x-column-header.x-column-header-checkbox').on('click', function () {";                rowallselectevent += "__doPostBack('" + this.ID + "', \"RowAllSelect$\" + $(this).hasClass(\"x-grid-hd-checker-on\"));";                rowallselectevent += "  });";            }            StringBuilder sb = new StringBuilder();            sb.Append(gridSelectModelScript + gridStoreScript + pagingScript + gridColumnsScript + cellEditScript );            sb.AppendFormat("var {0}=Ext.create('Ext.grid.Panel',{1});", XID, OB);            sb.Append(sbGetSelectID.ToString());            sb.Append(rowallselectevent);//加到生成的输出里就可以了            AddStartupScript(sb.ToString());

  

注意sb.Append的位置,这样就可以了,前台用
EnableRowAllSelectEvent="false" OnRowAllSelect="Grid1_RowAllSelect"

  

后台cs

protected void Grid1_RowAllSelect(object sender, FineUI.GridRowAllSelectEventArgs e)        {            Alert.Show("是否全选:"+e.boolall.ToString());        }

  

转载于:https://www.cnblogs.com/shiworkyue/p/4894647.html

你可能感兴趣的文章
Data Lake Analytics: 以SQL方式查询Redis数据
查看>>
一条查询sql的执行流程和底层原理
查看>>
ActiveMQ多个消费者消费不均匀问题
查看>>
ovirt自承载引擎安装配置 安装过程中的FQDN问题
查看>>
小米进军欧洲智能手机市场:一面是狂欢,一面是考验
查看>>
提高IO性能(只需要设置 noatime)
查看>>
批处理 启动和关闭 Oracle 11g 服务
查看>>
二手车服务商完成A轮融资,投资方为标志雪铁龙集团
查看>>
一文读懂什么是Java中的自动拆装箱
查看>>
java函数式编程
查看>>
获5.3亿美金融资,亚马逊、红杉入局,自动驾驶“梦之队”Aurora还藏了哪些秘招?...
查看>>
C#-Xamarin利用ZXing.Net.Mobile进行扫码
查看>>
网站有漏洞被攻击篡改了数据该怎么修复解决
查看>>
抖音短视频开发项目跨入社交圈,头条实现社交梦?
查看>>
亲测 | 如何更高效的管理原生微服务应用
查看>>
jQuery UI 自定义样式的日历控件
查看>>
成为优秀UI设计师,必须了解的UI设计规范
查看>>
Memcached源码分析 - LRU淘汰算法(6)
查看>>
数据类型
查看>>
Jenkins 插件之环境变量插件EnvInject(学习笔记十三)
查看>>