实现那还差点,在事件参数里我传了一个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());
}

  

ASP.NET-FineUI开发实践-16(二)的更多相关文章

  1. FineUI开源版(ASP.Net)开发实践-目录

    点我订阅 目前所有博客的截图,方便离线观看,点图片 FineUI初学手册 下载,实例项目搭建 FineUI初学手册-部分JS整理 部分JS整理 ASP.NET-FineUI开发实践-1 实际开发环境是 ...

  2. FineUI开发实践-目录

    点我订阅 目前所有博客的截图,方便离线观看,点图片 FineUI初学手册 下载,实例项目搭建 FineUI初学手册-部分JS整理 部分JS整理 ASP.NET-FineUI开发实践-1 实际开发环境是 ...

  3. FineUI开发实践

    ASP.NET-FineUI开发实践-7 摘要: 下拉显示grid列表.其实很简单,但是试了很多方法,水平有限,主要是都不好使,还是简单的好使了,分享下.先是看了看网上的,是直接写个了extjs控件类 ...

  4. 使用ADO实现BLOB数据的存取 -- ADO开发实践之二

    使用ADO实现BLOB数据的存取 -- ADO开发实践之二 http://www.360doc.com/content/11/0113/16/4780948_86256633.shtml 一.前言 在 ...

  5. Xamarin.Android开发实践(二)

    原文:Xamarin.Android开发实践(二) 一.准备 开始学习本教程前必须先完成该教程http://www.cnblogs.com/yaozhenfa/p/xamarin_android_qu ...

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

    1.加图标和事件 上次已经通过DataSimulateTreeLevelField属性控制了树节点的显示,不用看也知道就是给指定列数据前面加个图标的HTML 可以在SimulateTreeHeper类 ...

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

    还是基础的东西,grid全选没有事件,给加个事件,除了需要会复制粘贴外还要点推荐那!   第一步:原理  事件被触发,方法被实现. 对于全选事件,被触发有两种方式可写,一个是通过原生extjs方式触发 ...

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

    在网上找了找,实验了一下window弹出和关闭的动画效果分享一下. 接上次的代码 default.js window_tips.animCollapse= true;//打开动画效果 window_t ...

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

    1.上回说到修改以前的会出现好几个5: 这是因为新增时是只新增到最后一行,所以点击选好了就跑到最后一行了,而且行号不会累积,只加到初始化的行号. 其实js里是有插入的,例子里可以插入到第一行,新增是a ...

随机推荐

  1. python django 自定义 装饰器

    # -*-coding:utf-8-*- __author__ = "GILANG (pleasurelong@foxmail.com)" """ d ...

  2. BZOJ 1006 神奇的国度

    Description K国是一个热衷三角形的国度,连人的交往也只喜欢三角原则.他们认为三角关系:即AB相互认识,BC相互认识,CA相互认识,是简洁高效的.为了巩固三角关系,K国禁止四边关系,五边关系 ...

  3. hdu 5113 Black And White

    http://acm.hdu.edu.cn/showproblem.php?pid=5113 题意:给你n*m的格子,然后在每个格子内涂色,相邻格子不能同色,然后给你每个颜色涂的格子的固定个数,然后可 ...

  4. BS_OWNERDRAW风格的作用和例子,值得研究~

    TBitBtn就是一个例子: procedure TBitBtn.CreateParams(var Params: TCreateParams); begin inherited CreatePara ...

  5. VBA读取word中的内容到Excel中

    原文:VBA读取word中的内容到Excel中 Public Sub Duqu()      Dim myFile As String     Dim docApp As Word.Applicati ...

  6. 详解Spring中的CharacterEncodingFilter

    在项目中有很多让人头疼的问题,其中,编码问题位列其一,那么在Spring框架中是如何解决从页面传来的字符串的编码问题的呢?下面我们来看看Spring框架给我们提供过滤器CharacterEncodin ...

  7. 对于唯一索引使用唯一条件搜索, InnoDB 只锁定找到的index record,不是它之前的区间

    | test100 | CREATE TABLE `test100` ( `sn` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增编号', `phoneNo` ...

  8. Unity 随机数的使用

    脚本语言:C# 一个比较常用的例子是游戏中的主角碰到场景中的NPC时,NPC会随机做出反应,例如有50%几率来友好的致敬,25%几率走开,20%几率反身攻击和%%的几率赠送礼物. 创建一个NPCTes ...

  9. 在VC中集成cURL

    libcurl 库的代码是完全开源的,但是我们一般不会在项目中直接引入它的源代码,而是通过动态链接库隐式链接的方式引入 libcrul 库.也就是说,我们需要在自己的项目中引入 libcrul 相关的 ...

  10. SQL 第二章 作业

    /*第二章 作业*/ create table S ( sno char(2) NOT NULL UNIQUE, sname char(3), city char(2) ); alter table ...