EasyUI这个框架用了好久了,总结一下遇到的问题和解决方法
2013-10-17 17:22
621 查看
1. jQuery EasyUI动态添加控件或者ajax加载页面后不能自动渲染问题的解决方法:
我们之所以在页面中,只要书写相应easyui的class,Easyui就能成功渲染页面,这是因为解析器在默认情况下,parser会在文档装载完成的时候($(document).ready)被调用一次,而且是渲染整个页面。
然而当页面装载完后,如果用javascript生成的DOM中包含了Easyui支持控件的class,比如说,用javascript生成了以下代码:
虽然页面上有这样的DOM了,但是没有被渲染为Easyui的linkbutton插件,原因是Easyui并不会一直监听页面,所以不会主动渲染,这时候就需要手工调用Easyui的parser进行解析了。
手工调用需要注意以下几点:
解析目标为指定DOM的所有子孙元素,不包含这个DOM自身:
比如上面代码生成的HTML,id="tt"是我们想要的LinkButton,像下面代码去手工解析的话是得不到你想要的结果的:
道理很简单,parser只渲染tt的子孙元素,并不包括tt自身,而它的子孙元素并不包含任何Easyui支持的控件class,所以这个地方就得不到你想要的效果了,应该这样写:
渲染tt的父节点的所有子孙元素就可以了,不管你的javascript输出什么DOM,直接渲染其父节点就可以保证页面能被正确解析。
2. 解决EasyUI窗体阻止Asp.Net控件事件代码:
原因是窗体内的控件不在form表单中了,无法渲染为Asp.Net控件,所以我们要手动给这个id='dialog'的窗体放到form表单中
3. 如何让EasyUI弹出窗体跳出框架(原网址:原文链接):
只要在最外面的框架页面加个div,然后用parent.div的id就可以的。但是必须得弹出框得是一个页面(iframe指向的新页面)。
我们之所以在页面中,只要书写相应easyui的class,Easyui就能成功渲染页面,这是因为解析器在默认情况下,parser会在文档装载完成的时候($(document).ready)被调用一次,而且是渲染整个页面。
然而当页面装载完后,如果用javascript生成的DOM中包含了Easyui支持控件的class,比如说,用javascript生成了以下代码:
<a id="tt" href="#" class="easyui-linkbutton" data-options="iconCls:'icon-search'">easyui</a>
虽然页面上有这样的DOM了,但是没有被渲染为Easyui的linkbutton插件,原因是Easyui并不会一直监听页面,所以不会主动渲染,这时候就需要手工调用Easyui的parser进行解析了。
手工调用需要注意以下几点:
解析目标为指定DOM的所有子孙元素,不包含这个DOM自身:
比如上面代码生成的HTML,id="tt"是我们想要的LinkButton,像下面代码去手工解析的话是得不到你想要的结果的:
$.parser.parse($('#tt'));
道理很简单,parser只渲染tt的子孙元素,并不包括tt自身,而它的子孙元素并不包含任何Easyui支持的控件class,所以这个地方就得不到你想要的效果了,应该这样写:
$.parser.parse($('#tt').parent());
渲染tt的父节点的所有子孙元素就可以了,不管你的javascript输出什么DOM,直接渲染其父节点就可以保证页面能被正确解析。
2. 解决EasyUI窗体阻止Asp.Net控件事件代码:
原因是窗体内的控件不在form表单中了,无法渲染为Asp.Net控件,所以我们要手动给这个id='dialog'的窗体放到form表单中
$('#dialog').parent().appendTo($("form:first"))
3. 如何让EasyUI弹出窗体跳出框架(原网址:原文链接):
只要在最外面的框架页面加个div,然后用parent.div的id就可以的。但是必须得弹出框得是一个页面(iframe指向的新页面)。
//父页面代码 <div id="div_info"></div> //子页面代码 //外层弹出框1 function openFirstWin(url, title, width, height) { var strWidth; var strHeight; if (width == null) strWidth = 800; else strWidth = width; if (height == null) strHeight = 500; else strHeight = height; if (url != null) { //var content = '<iframe name=\"first\" scrolling=\"auto\" frameborder=\"0\" src=\"' + url + '\" style=\"width:100%\;height:100%\;\"></iframe>'; var content = createIFrame(url); parent.$('#div_info').window({ close: false, modal: true, draggable: false, title: title, animate: true, content: content, minimizable: false, width: strWidth, height: strHeight, top: (parent.$(parent.window).height() - height) * 0.5, left: (parent.$(window).width() + 200 - strWidth) * 0.5 }); } return false; }
相关文章推荐
- 现就本人在初学MFC中遇到的问题以及解决方法做一下总结,软件环境为VS2008
- 今天我也遇到这个问题----ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源 ,收藏一下解决方法
- 对Android 平台下SElinux的理解及遇到过的相关问题解决方法总结
- eclipse插件开发的发布过程中遇到的问题与解决方法总结
- 说一下你的程序在ios5里面遇到的兼容性问题以及解决方法吧
- WEB开发过程中遇到的各种问题及解决方法总结
- myeclipse不编译解决方法【曾经遇到过这个问题,转了】
- 最近在ArcGIS Engine开发中关于调用gp工具过程出现COM 组件的调用返回了错误 HRESULT E_FAIL 错误的解决方法 和 学习oracle中遇到的一些问题总结
- (超好)xp系统遇到问题解决方法总结(提供了一个解决问题库)
- node开发指南中的microblog项目中遇到的问题总结及解决方法
- MVVM框架从WPF移植到UWP遇到的问题和解决方法
- ”IIS发布问题“,最近项目总是出这个问题,这儿保存一下解决方法
- android可能遇到问题,以及找到的解决方法小总结!
- [置顶] 【总结】嵌入式Linux学习中遇到的问题及解决方法
- EasyUi 动态tabs 在实际项目中遇到问题与解决方法
- mysql安装不上怎么办 mysql安装失败原因和解决方法--这个问题,我遇到过,还蛮好用的 - 保留
- 总结今天遇到的问题以及解决方法
- 用JQ easyui做弹出层时遇到的问题解决方法
- 总结一下一般游戏中3D模型各种勾边方法遇到的工程性问题
- 学习django框架,记录所遇到的问题以及解决方法