今天在做用户管理模块时,发现使用$('#xxx').window('open')的方法存在一个问题,第二次页面加载时不刷新了,新增页面保存后,双击打开修改页面,数据还在.
这样在新增页面进行控件默认值清除时,就会发现url中传递过来的标示符无法读取了.
- 进行easy ui 对话窗口的属性查看.
a) 发现只有一些基本的属性设置,没有提供刷新页面的方法.
b) 查看的页面地址如下: http://www.phptogether.com/juidoc/window.html
c) 这个是我找到的 一个比较全的easy ui 翻译文档.平时有不记得的时候可以打开看看
2.查看一般情况下的实现方式.
a) 一般情况下,都是在数据展示页面,加个DIV进行弹出框的代码编写.实际代码都是写在一个页面中.
b)
c) 这样的实现方案在于在本页面进行赋值或者清空后进行页面展示.
d) 优势:不要考虑刷新问题,控件的赋值和清空都可以在js中实现.也不会出现第二次加载时不刷新的问题.
e) 缺点:js,控件都在一起,对于aspx,js文件来说.编写代码行数必然会增加.那么在于代码的修改性和阅读性上就体现的比较差.
3.继续查找easy ui中的window对象有什么具体的方法.
a) 根据百度查找发现了突破口,存在刷新的方法.
b)
c) 继续查找资料,在easy ui的官网中发现了refresh的使用方法.
d)
4.在有了使用方法之后,我们就差具体的代码实现了.
a) 定义一个div,进行代码测试.
b) 这里我就直接放上正确的代码吧.在试验中发现了一些小问题.
i. 例如:open,和refresh的调用顺序不同,实现效果不同.
ii. Window窗体申明时定义了url,再次刷新时,会发现刷新了二次.
iii. 不使用open,页面可以正常刷新弹出alert提示,但是没有看到页面.
iv. 在window窗体申明时不定义url,进行open发现打开了一个空白页.
v. 此类小问题,只是说出来供大家参考.
1 //打开新增或者修改页面 2 function OpenUserInfo(type,RowData) 3 { 4 var strTitle = "新增用户信息"; 5 var strUrl = '/PageView/Management/Add_UserInfo.aspx?user_infotype=' + type; 6 if (type == "edit") { 7 strTitle = "修改用户信息"; 8 strUrl += '&id=' + RowData.id; 9 } 10 $('#userinfo_winUserInfo').window({ 11 width: 558, 12 title: strTitle, 13 height: 370, 14 top: 88, 15 left: 300, 16 // href: strUrl, 17 modal: true, 18 closable: false, 19 collapsible: false, 20 minimizable: false, 21 maximizable: false, 22 resizable: false 23 }); 24 $('#userinfo_winUserInfo').window('open'); 25 $('#userinfo_winUserInfo').window('refresh',strUrl); 26 }