ASP.NET-FineUI开发实践-16(二)

简介: 实现那还差点,在事件参数里我传了一个boolall选中状态参数,这个参数由前台给的,RowSelect 传的是index 行号,就是改这,通过$符号来分开的, if (commandArgs.Length == 2) { OnRowAllSelect(new GridRowAllSelectEventArgs(bool.Parse(commandArgs[1].ToString()))); }    就是这个段代码干的事。

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

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

  

就是这个段代码干的事。
再写成功之前,来用js试一下,打开grid_rowcommand_download.aspx文件,因为这有个全选,把js加进去
    <script src="../res/js/jquery.min.js"></script>
    <script>
        F.ready(function () {
            $('#Grid1').find('.x-column-header.x-column-header-checkbox').on('click', function () {
                    __doPostBack('Grid1', "RowAllSelect$" + $(this).hasClass("x-grid-hd-checker-on"));
            });
        });
    </script>

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

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

 

正常情况下就触发成功了。
第三步封装
封装了么,当然没有,写F.ready里就不是封装啊,首先给Grid加一个属性,EnableRowAllSelectEvent 为了打开或关闭全选事件,复制EnableRowSelectEvent就行了,
        /// <summary>
        /// 全选是否自动回发
        /// </summary>
        [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"
  <f:Grid ID="Grid1" Title="表格" EnableCollapse="true" ShowBorder="true" ShowHeader="true"
        runat="server" EnableCheckBoxSelect="True" DataKeyNames="Id,Name" Width="800px"
        OnRowCommand="Grid1_RowCommand" EnableRowAllSelectEvent="false" OnRowAllSelect="Grid1_RowAllSelect">

  

后台cs

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

  

目录
相关文章
|
2月前
|
Linux API C#
基于 .NET 开发的多功能流媒体管理控制平台
基于 .NET 开发的多功能流媒体管理控制平台
45 9
|
2月前
|
缓存 算法 安全
精选10款C#/.NET开发必备类库(含使用教程),工作效率提升利器!
精选10款C#/.NET开发必备类库(含使用教程),工作效率提升利器!
71 12
|
2月前
|
Web App开发 前端开发 调度
一款基于 .NET + Blazor 开发的智能访客管理系统
一款基于 .NET + Blazor 开发的智能访客管理系统
|
2月前
|
前端开发 JavaScript C#
基于.NET8+Vue3开发的权限管理&个人博客系统
基于.NET8+Vue3开发的权限管理&个人博客系统
|
2月前
|
网络协议 C#
基于.NET WinForm开发的一款硬件及协议通讯工具
基于.NET WinForm开发的一款硬件及协议通讯工具
|
2月前
|
监控 前端开发 API
一款基于 .NET MVC 框架开发、功能全面的MES系统
一款基于 .NET MVC 框架开发、功能全面的MES系统
|
3月前
|
传感器 人工智能 供应链
.NET开发技术在数字化时代的创新作用,从高效的开发环境、强大的性能表现、丰富的库和框架资源等方面揭示了其关键优势。
本文深入探讨了.NET开发技术在数字化时代的创新作用,从高效的开发环境、强大的性能表现、丰富的库和框架资源等方面揭示了其关键优势。通过企业级应用、Web应用及移动应用的创新案例,展示了.NET在各领域的广泛应用和巨大潜力。展望未来,.NET将与新兴技术深度融合,拓展跨平台开发,推动云原生应用发展,持续创新。
56 4
|
5月前
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
59 7
|
5月前
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
108 0