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天前
|
人工智能 前端开发 开发工具
解读.NET 技术的开发潜力
本文全面介绍了.NET技术在软件开发领域的核心优势、创新应用及面临的挑战。.NET以其统一的开发平台、强大的工具和跨平台能力,成为企业级应用、Web应用乃至游戏开发的理想选择。然而,在性能优化、容器化及AI集成等方面仍需不断突破。通过积极拥抱开源和社区驱动模式,.NET将持续推动软件开发的进步。
11 1
|
13天前
|
存储 运维
.NET开发必备技巧:使用Visual Studio分析.NET Dump,快速查找程序内存泄漏问题!
.NET开发必备技巧:使用Visual Studio分析.NET Dump,快速查找程序内存泄漏问题!
|
13天前
|
SQL 关系型数据库 数据库
七天.NET 8操作SQLite入门到实战详细教程(选型、开发、发布、部署)
七天.NET 8操作SQLite入门到实战详细教程(选型、开发、发布、部署)
|
13天前
|
消息中间件 开发框架 前端开发
YuebonCore:基于.NET8开源、免费的权限管理及快速开发框架
YuebonCore:基于.NET8开源、免费的权限管理及快速开发框架
|
19天前
|
开发框架 JavaScript 前端开发
|
20天前
|
C# Windows 开发者
超越选择焦虑:深入解析WinForms、WPF与UWP——谁才是打造顶级.NET桌面应用的终极利器?从开发效率到视觉享受,全面解读三大框架优劣,助你精准匹配项目需求,构建完美桌面应用生态系统
【8月更文挑战第31天】.NET框架为开发者提供了多种桌面应用开发选项,包括WinForms、WPF和UWP。WinForms简单易用,适合快速开发基本应用;WPF提供强大的UI设计工具和丰富的视觉体验,支持XAML,易于实现复杂布局;UWP专为Windows 10设计,支持多设备,充分利用现代硬件特性。本文通过示例代码详细介绍这三种框架的特点,帮助读者根据项目需求做出明智选择。以下是各框架的简单示例代码,便于理解其基本用法。
59 0
|
JavaScript API
ASP.NET-FineUI开发实践-9(四)
现在是这么个问题,在开发中表格是动态出来的,就是标准板是全部字段列出,客户要根据情况列出自己想要的,在增加操作页面的同时要是能用前台自带的功能直接保存到后台就好了,现在的列显示和隐藏是不回发的。 1.
892 0
|
前端开发 API 数据库
ASP.NET-FineUI开发实践-9(三)
1. TextChanged事件前台触发回发后台,接上文,先给TextBox1加上事件,看看是怎么生成出来的, 注意AutoPostBack="true",找源代码,f4多出了个 listeners: { change: function () { ...
833 0
|
JavaScript API
ASP.NET-FineUI开发实践-9(二)
其实我也不会,老实教人学怕误人子弟,但是抱着毁人不倦的精神还是糊弄糊弄个别小白吧,最起码能加点原创。 下面以表单为例,打开官方项目,版本为FineUI_4.1.1,打开form_compare页,右键在浏览器中查看,右键查看源文件,这次要做的是前台通过按钮点击生成form及与后台的交互。
860 0
|
前端开发 JavaScript
ASP.NET-FineUI开发实践-8(二)
把上回的做一些改进 1.点击grid2的行改变TriggerBox1的值 var v = $(item).find('.x-grid-cell-Name div.
796 0

相关实验场景

更多