我用实例项目写了个子父页面传值,算是比较灵活的写法,可以把js提取出来写成包,然后调用,我先一步一步写,为有困难的朋友打个样。

先画个页面:
上面是个查询用的表单,底下是表格,内存分页,用到了VBox布局注意BoxFlex属性的应用,页面还有一个window页面。我会把源码放出来。
1.先看查询
姓名的查询按钮会弹出一个window,打开window前后台都差不多,我用了前台,这个样子滴
  1. <f:TriggerBox runat="server" Label="姓名" AutoPostBack="false" TriggerIcon="Search"
  2. OnClientTriggerClick="ShowWindow()" ID="TriggerBox1" EnablePostBack="False">
  3. </f:TriggerBox>
  1. //显示window
  2. function ShowWindow() {
  3. F('<% =Window1.ClientID %>').f_show('./selectgrid.aspx', '选择', 800, 500);
  4. }

第一个参数是url,第二个是标题,然后是宽和高。js比回发快不多说。

选择window下有按钮三个:确定,确定并查询,取消在最底下,注意grid 的EnableMultiSelect 属性,三按钮都是前台写的,没有触发后台,可能是写的简单,但也感觉挺灵活的。
贴出来注意多看一眼注释,确认和确认并查询的方法,其实就是多个回发,但回发要在上层执行,方法写在后台我感觉乱,转不过来,所以都搬前台来了,一步一步写,所以灵活,我可以中间干点别的。
  1. function select(select_back) {
  2. //得到选择的行
  3. var rows = F('<% =Grid1.ClientID %>').f_getSelectedRows();
  4. //选择项
  5. var provinceName;
  6. //注意each的使用
  7. Ext.Array.each(rows, function (rowIndex, index) {
  8. //得到选择的行数据和列数据
  9. var rec = F('<% =Grid1.ClientID %>').store.getAt(rowIndex);
  10. provinceName = rec.get('Name');
  11. });
  12. //核心:得到当前的window
  13. var activeWindow = F.wnd.getActiveWindow();
  14. //核心:执行上层的js
  15. activeWindow.window.selectProvince(provinceName, select_back);
  16. //核心:隐藏该window
  17. activeWindow.f_hide();
  18. }

执行了上层的selectProvince方法,再把selectProvince方法贴出来,上层就是window_grid页面

  1. function selectProvince(name, select_back) {
  2. //给控件赋值
  3. F('<% =TriggerBox1.ClientID %>').setValue(name);
  4. //是否回发
  5. if (select_back) {
  6. //回发事件
  7. F.customEvent('SelectGrid');
  8. }
  9. }
其实有了customEvent方法 爱怎么回发怎么回发,后台方法就是通过姓名查询数据,没啥好写的。
这个例子主要是打开window,打开的window通过执行上层的js回发至后台灵活执行方法。
2.修改
也是打开个window,这里得到了一个选择行的Id,当做参数传过去了,后来发现这个没用到,反正我没用到,注意 rec.get(方法 参数是ColumnID
  1. function Grid_Edit() {
  2. var rows = F('<% =Grid1.ClientID %>').f_getSelectedRows();
  3. var id;
  4. Ext.Array.each(rows, function (rowIndex, index) {
  5. var rec = F('<% =Grid1.ClientID %>').store.getAt(rowIndex);
  6. id = rec.get('ItemId');
  7. });
  8. F('<% =Window1.ClientID %>').f_show('./gridedit.aspx?id=' + id, '修改', 500, 300);
  9. }

加载数据也是js写的,Bindedit方法上下也用到了。

  1. F.ready(function () {
  2. Bindedit();
  3. });
  4. function Bindedit(Position) {
  5. var activeWindow = F.wnd.getActiveWindow();
  6. var id = activeWindow.window.GetSelectID(Position);
  7. F.customEvent('Bindedit_' + id);
  8. }

用到了上层的GetSelectID方法,参数是上还是下。

  1. function GetSelectID(Position) {
  2. var grid = F('<% =Grid1.ClientID %>');
  3. var selectedValues = [];
  4. var rows = grid.f_getSelectedRows(), id;
  5. Ext.Array.each(rows, function (rowIndex, index) {
  6. //上机制,到0了就上不去了
  7. if (Position == "top" && rowIndex != 0) {
  8. rowIndex = rowIndex - 1;
  9. }
  10. //到最后也上不去了
  11. if (Position == "next" && rowIndex != grid.f_getPaging().f_pageSize - 1 && rowIndex != grid.getStore().getCount()) {
  12. rowIndex = rowIndex + 1;
  13. }
  14. //想写翻页着,不好写
  15. if (rowIndex == grid.f_getPaging().f_pageSize - 1) {
  16. //F.customEvent('rowIndex_Next_');
  17. }
  18. //新方法:选择当前行
  19. selectedValues.push(rowIndex);
  20. grid.f_selectRows(selectedValues);
  21. //得到行对应列的数据
  22. var rec = grid.store.getAt(rowIndex);
  23. id = rec.get('ItemId');
  24. });
  25. return id;
  26. }
还有一个方法是GetWindow,我以前写过,看看代码吧。晚了睡觉。
这个JS写的有点肿,可以直接后台调用,可以参见 ASP.NET-FineUI开发实践-17对传值进行了优化
发个图:
 
下载地址: CSDN 0 分 备用地址

ASP.NET-FineUI开发实践-11的更多相关文章

  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. [转]Asp.Net大型项目实践(11)-基于MVC Action粒度的权限管理【续】【源码在这里】(在线demo,全部源码)

    本文转自:http://www.cnblogs.com/legendxian/archive/2010/01/25/1655551.html 接上篇Asp.Net大型项目实践(10)-基于MVC Ac ...

  5. ASP.NET MVC5 网站开发实践(二) Member区域 - 添加文章

    上次把架构做好了,这次做添加文章.添加文章涉及附件的上传管理及富文本编辑器的使用,早添加文章时一并实现. 要点: 富文本编辑器采用KindEditor.功能很强大,国人开发,LGPL开源,自己人的好东 ...

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

    现在是这么个问题,在开发中表格是动态出来的,就是标准板是全部字段列出,客户要根据情况列出自己想要的,在增加操作页面的同时要是能用前台自带的功能直接保存到后台就好了,现在的列显示和隐藏是不回发的. 1. ...

  7. ASP.NET MVC5 网站开发实践(二) Member区域–管理列表、回复及删除

    本来想接着上次把这篇写完的,没想到后来工作的一些事落下了,放假了赶紧补上. 目录: ASP.NET MVC5 网站开发实践 - 概述 ASP.NET MVC5 网站开发实践(一) - 项目框架 ASP ...

  8. ASP.NET MVC5 网站开发实践(二) Member区域–我的咨询列表及添加咨询

    上次把咨询的架构搭好了,现在分两次来完成咨询:1.用户部分,2管理部分.这次实现用户部分,包含两个功能,查看我的咨询和进行咨询. 目录: ASP.NET MVC5 网站开发实践 - 概述 ASP.NE ...

  9. ASP.NET MVC5 网站开发实践(二) Member区域 - 咨询管理的架构

    咨询.留言.投诉等功能是网站应具备的基本功能,可以加强管理员与用户的交流,在上次完成文章部分后,这次开始做Member区域的咨询功能(留言.投诉都是咨询).咨询跟文章非常相似,而且内容更少.更简单. ...

随机推荐

  1. 练习2 A - ASCII码排序

      Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u   Description 输入三 ...

  2. 剖析并利用Visual Studio Code在Mac上编译、调试c#程序【转】

    0x00 前言 一周多以前的微软的Build大会上,微软发布了一个让很多人眼前一亮的工具,也是本文的主角——Visual Studio Code.很多使用Windows的朋友都很高兴,认为又多了一个很 ...

  3. fread遇到1A则读取停止,发现是1A是文件截止符

    fread遇到1A则读取停止,发现是1A是文件截止符 按二进制来读来则可以完全读取

  4. JVM中内存回收深入分析,各种垃圾收集器

    JVM启动有两种模式,client和server 一般JVM启动时会根据主机情况分析选择采用那种模式启动 可发现是server模式 JVM中尤其需要关注的就是HEAP堆区 堆区分为新生代和老年代 新生 ...

  5. 图论 BZOJ 3669 [Noi2014]魔法森林

    Description 为了得到书法大家的真传,小E同学下定决心去拜访住在魔法森林中的隐士.魔法森林可以被看成一个包含个N节点M条边的无向图,节点标号为1..N,边标号为1..M.初始时小E同学在号节 ...

  6. 【枚举】Vijos P1496 火柴棒等式 (NOIP2008提高组第二题)

    题目链接: https://vijos.org/p/1496 题目大意: 给你n(n<24)根火柴棍,你可以拼出多少个形如“A+B=C”的等式?("+"和"=&qu ...

  7. zoj 1586

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1586 //zoj 1586 #include<iostream> ...

  8. SRM 401(1-250pt, 1-500pt)

    DIV1 250pt 题意:给一个整数f,则这样的正整数整数数列称为好数列:数列元素a0 >= a1 >= a2...,且a0<= f, a1 <= f-1, a2 <= ...

  9. 跑步进入全站 HTTPS ,这些经验值得你看看

    随着国内网络环境的持续恶化,各种篡改和劫持层出不穷,越来越多的网站选择了全站 HTTPS.就在前几天,免费提供证书服务的 Let’s Encrypt 项目也正式开放测试,HTTPS 很快就会成为 WE ...

  10. php 利用第三方软件进行网页快照

    网页快照有很多方法,具体的大家可以百度下.这里我复制一位别人的. 这里我只说下利用第三方软件(Web2Pic_Pro)实现. (1). 下载web2pic_pro软件.下载地址 http://isha ...