EasyUI这个框架用了好久了,总结一下遇到的问题和解决方法
1. jQuery EasyUI动态添加控件或者ajax加载页面后不能自动渲染问题的解决方法:
我们之所以在页面中,只要书写相应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;
}
EasyUI这个框架用了好久了,总结一下遇到的问题和解决方法的更多相关文章
- Asp.Net异常:"由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值"的解决方法
今天项目中碰到一个以前从没有见过的异常信息“由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值”,于是查了一下资料,原来此异常是由于我在代码中使用了"Response.End ...
- php ci框架中载入css和js文件失败的原因及解决方法
在将html页面整合到ci框架里面的时候,载入css和js失败. 原因是ci框架是入口的框架 对框架中文件的全部请求都须要经过index.php处理完毕,当载入外部的css和js文件的时候要使 用ba ...
- asp.net出现的异常:"由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值" 的解决方法
引用: https://support.microsoft.com/zh-cn/kb/312629 症状 如果您使用的Response.End. Response.Redirect或Server.Tr ...
- easyui中tab页中js脚本无法加载的问题及解决方法
我发现tab页中<script src="xxx.js">方式加载的脚本没有生效,firebug看请求也没有请求相应的脚本文件. 单独在浏览器中打开tab页中的页面js ...
- [Bug]由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值"的解决方法(转)
原因 如果使用 Response.End.Response.Redirect 或 Server.Transfer 方法,将出现 ThreadAbortException 异常.您可以使用 try-ca ...
- 使用Jquery+EasyUI 进行框架项目开发案例讲解之五 模块(菜单)管理源码分享
http://www.cnblogs.com/huyong/p/3454012.html 使用Jquery+EasyUI 进行框架项目开发案例讲解之五 模块(菜单)管理源码分享 在上四篇文章 ...
- 使用Jquery+EasyUI 进行框架项目开发案例讲解之四 组织机构管理源码分享
http://www.cnblogs.com/huyong/p/3404647.html 在上三篇文章 <使用Jquery+EasyUI进行框架项目开发案例讲解之一---员工管理源码分享> ...
- 使用Jquery+EasyUI 进行框架项目开发案例讲解之三---角色管理源码分享
使用Jquery+EasyUI 进行框架项目开发案例讲解之三 角色管理源码分享 在上两篇文章 <使用Jquery+EasyUI进行框架项目开发案例讲解之一---员工管理源码分享> ...
- 使用Jquery+EasyUI 进行框架项目开发案例讲解之二---用户管理源码分享
使用Jquery+EasyUI 进行框架项目开发案例讲解之二 用户管理源码分享 在上一篇文章<使用Jquery+EasyUI进行框架项目开发案例讲解之一---员工管理源码分享>我们分享 ...
随机推荐
- 【bzoj3916】[Baltic2014]friends 字符串hash
题目描述 有三个好朋友喜欢在一起玩游戏,A君写下一个字符串S,B君将其复制一遍得到T,C君在T的任意位置(包括首尾)插入一个字符得到U.现在你得到了U,请你找出S. 输入 第一行一个数N,表示U的长度 ...
- P4513 小白逛公园
题目背景 小新经常陪小白去公园玩,也就是所谓的遛狗啦… 题目描述 在小新家附近有一条“公园路”,路的一边从南到北依次排着 nnn 个公园,小白早就看花了眼,自己也不清楚该去哪些公园玩了. 一开始,小白 ...
- C++ Essentials 之 lower_bound 和 upper_bound 的比较函数格式不同
第一次注意到这个问题. cppreference 上的条目: lower_bound upper_bound C++17 草案 N4659 lower_bound template<class ...
- 洛谷 [P3377] 左偏树(可并堆)
可并堆,就是可以合并的堆 注意并查集不能路径压缩,不然删除根节点时会出错 #include <iostream> #include <cstring> #include < ...
- 排名次SQL语句【名次可重复时】
原文发布时间为:2008-10-26 -- 来源于本人的百度文章 [由搬家工具导入] 功能实现 名次可重复时,比如第一名有两个。。。 select *,(select count(distin ...
- 【jetty】Jetty与Tomcat的区别
Jetty 的架构从前面的分析可知,它的所有组件都是基于 Handler 来实现,当然它也支持 JMX.但是主要的功能扩展都可以用 Handler 来实现.可以说 Jetty 是面向 Handler ...
- 关于eclipse总是出现adb refused request的问题(转)
1.检查下是不是开启了手机助手之类2.打开进程管理器,结束所有的adb.exe 3.关闭所有的杀毒软件之类的东东4.检查USB连接线,USB口,把USB线连在电脑主机后面的USB口5.重启eclips ...
- Delphi 半透明窗体,窗体以及控件透明度
很简单了 现在,适用所有控件和窗体: delphi设置窗口透明 form1.AlphaBlend :=true; //透明form1.AlphaBlendValue :=180; //透明度form1 ...
- 通过使用集合Properties完成JDBC的连接工具类
1.将数据库连接对象所需参数保存在本地文件中 database.properties driverClass=com.mysql.jdbc.Driver url=jdbc:mysql://localh ...
- AC日记——K-th Number poj 2104
K-th Number Time Limit: 20000MS Memory Limit: 65536K Total Submissions: 52348 Accepted: 17985 Ca ...