`

Easyui 1.2.4+jQuery1.6.4 Dialog控件cache属性失效解决方案

 
阅读更多

环境:

 

easyui 1.2.4

jQuery 1.6.4

chrome

 

问题:

 

做项目中使用到easyui中的dialog,发现他的cache属性即使设置为false仍然还是不会发起服务端请求。

 

排查原因:

 

网上搜了下,无果,但搜到一个帖子

 

 

Mark ,easyUi缓存问题是执行顺序,('#dialog').html(data)先,再实例化('#dialog').dialog,而juqery dialog不会破坏#dialog'标签,easyUI会破坏标签,所以存在缓存问题

但是实在看不懂如何解决.

 

在调试中发现,使用easyui的dialog事件后你的dialog控件会“不见”,也就是下面代码中的#yourDialog整个DOM节点不见,easyui帮你自动生成一个。可能就是这里出问题。

 

 

<div style="display:none">
    <!-- 你的dialog控件-->
    <div id="#yourDialog" title="xxx"></div>
</div>

 

解决方法:

 

不想修改源码,想了想,可以通过以下方法解决:

 

 

$('#yourDialog').dialog({  
	    modal:true,
	    iconCls:"icon-add",
	    buttons:[{
			text:'提交',
			iconCls:'icon-ok',
			handler:function(){
				submitForm(appId, false);
			}
		},{
			text:'关闭',
			handler:function(){
				$('#yourDialog').dialog('close');
			}
		}],
		onOpen:function(){
			$('#createAppVersionDialog').dialog('refresh', 'yourUrl');
		}
	}); 

初始不提供href参数,监听onOpen事件,使用refresh参数使dialog读取服务端数据(refresh是panel的method)

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics