jQuery MiniUI

标题: 一个关于datagrid弹出窗口新增数据的问题 [打印本页]

作者: SeanChen    时间: 2012-10-24 16:21:08     标题: 一个关于datagrid弹出窗口新增数据的问题

请问一下DataGrid 弹出窗口增加数据的时候能不能在不关闭窗口的条件下 马上可以看到增加的数据

作者: factory    时间: 2012-10-24 16:25:42

可以,在父页面写个新增行的方法a(newdata);
然后子页面通过window.Owner.a(newdata);来调用父页面的a()方法,并且把newdata传过去。
作者: SeanChen    时间: 2012-10-24 16:34:30

factory 发表于 2012-10-24 16:25
可以,在父页面写个新增行的方法a(newdata);
然后子页面通过window.Owner.a(newdata);来调用父页面的a()方 ...

谢谢~~能说清楚一些吗~~关键是跨页面的,能不能举个例子~~
作者: factory    时间: 2012-10-24 17:03:59

SeanChen 发表于 2012-10-24 16:34
谢谢~~能说清楚一些吗~~关键是跨页面的,能不能举个例子~~


我刚才其实讲复杂了,
如果你点击弹出框的确定按钮,直接将新增的数据增加到数据库的话,父页面只需要一个reload()方法就可以了
父页面:
  1. function gridreload(){
  2.     grid.reload();
  3. }
复制代码
子页面:
只要在你的savedata方法里面,通过window.Owner.gridreload();就可以了。他会调用到父页面的gridreload()方法,从而刷新表格,将新增的数据从数据库里面加载进来
作者: factory    时间: 2012-10-24 17:05:26

子页面的方法类似这样:
  1. function SaveData() {
  2.             var o = form.getData();            

  3.             form.validate();
  4.             if (form.isValid() == false) return;

  5.             var json = mini.encode([o]);
  6.             $.ajax({
  7.                 url: "../data/AjaxService.aspx?method=SaveEmployees",
  8.                 data: { data: json },
  9.                 cache: false,
  10.                 success: function (text) {
  11.                     window.Owner.gridreload();//新增成功,调用父页面方法,刷新
  12.                 },
  13.                 error: function (jqXHR, textStatus, errorThrown) {
  14.                     alert(jqXHR.responseText);
  15.                     CloseWindow();
  16.                 }
  17.             });
  18.         }
复制代码

作者: SeanChen    时间: 2012-10-24 17:08:10

factory 发表于 2012-10-24 17:05
子页面的方法类似这样:

我试试看哈~~非常感谢你~
作者: SeanChen    时间: 2012-10-24 17:19:54

factory 发表于 2012-10-24 17:05
子页面的方法类似这样:

貌似不行,提示错误: 无法获取属性“gridreload”的值: 对象为 null 或未定义
作者: factory    时间: 2012-10-24 17:25:14

SeanChen 发表于 2012-10-24 17:19
貌似不行,提示错误: 无法获取属性“gridreload”的值: 对象为 null 或未定义

你本地有demo的吧?
你这样,在datagrid.html里面增加一个方法
  1. function gridreload(){
  2.     grid.reload();
  3. }
复制代码
然后在CommonLibs/EmployeeWindow.html页面里的SaveData方法换成我上面的贴的那个子页面的方法
你测试下能否控制父页面的gird刷新。
这个是肯定可行的
作者: SeanChen    时间: 2012-10-24 17:28:03

factory 发表于 2012-10-24 17:25
你本地有demo的吧?
你这样,在datagrid.html里面增加一个方法然后在CommonLibs/EmployeeWindow.html页面 ...

有democ~~
作者: SeanChen    时间: 2012-10-24 17:31:50

factory 发表于 2012-10-24 17:25
你本地有demo的吧?
你这样,在datagrid.html里面增加一个方法然后在CommonLibs/EmployeeWindow.html页面 ...

3Q哈~谢谢不厌其烦的回答~




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2