DWZ在APS.NET WebForm中的使用(二)
任何框架由于个人理解不到位或者框架自身的局限性,在项目实施中,大家或多或少都会遇到一些问题,下面我就讲述下我在使用DWZ开发过程中的几个问题。如有一点能帮助到你,这篇文章也算有存在的意义了。
1.树菜单展示问题
DWZ自带树控件用于菜单展示还是不错的,但用于展示层数较多、数据量较大的树形菜单时,就显得捉襟见肘了。这里向大家推荐一款js插件:zTree ,看重它的原因在于它包含丰富的API和优秀的Ajax能力,你不需要担心它的学习成本,示例也较为丰富。
有兴趣的朋友可参观官网: http://www.ztree.me/v3/main.php#_zTreeInfo
引用时稍微注意一下,只要引用如图1.1所示的2个文件即可。demo中可能会有其他的js和css文件,那是为了更好的展示demo而存在的,毋须引用(引用时发现也会和当前的框架冲突)。

(图1.1)
2.界面高度问题
在开发过程中,你肯定会遇到这个问题:自己建的界面并没有完全占满整个屏幕,将div设置固定高度,换个不同规格的显示器又会出现问题。layoutH就可以解决此问题。
那到底代表什么含义呢?如图2.1所示,B的父元素为600px,定义B的layoutH为100,则B的高度为500px,实际上B的高度是父元素高度-layoutH。

(图2.1)
3.列表展示问题
列表是后台管理界面的重要组成部分,框架自带的增删改功能也是相当完善的,但在实际开发中还是遇到了些问题。
我比较喜欢前台js脚本直接输出到界面组成html的方式来显示页面。但发现,动态生成的界面并没有显示出理想的效果。原因是什么呢?借助debug工具发现,原来在生成html后,dwz会自动加载并重新组装。而js前台生成的html,dwz无法预知它什么时候触发,界面重写也就无能为力了。后来查看dwz的js源码,几个函数让我怦然心动,$("table.table", $(P)).jTable(); initUI($(p));大家可能从函数的英文意思上已经猜的差不多了,没错,生存html后调用以上任意一个函数都会重新加载样式。
那jTable和initUI到底有什么不同呢?后经测试发现,jTable是个较为轻量的函数,只对table样式起作用。而initUI则会重新加载所有样式。值得注意的是,initUI是可以不带参数的,也就是说可以加载整个页面。当然这也是不建议的,通常填写你要加载的div就可以了,这样可以避免整个界面样式出现不协调或者加载时间过长的问题。table中我们经常会在第一列放上checkbox做批量操作处理,注意了,这时就要使用initUI了,jTable不包括这个功能。
4.下拉菜单
我在ajax异步操作时操控表单显示某项时发现不起作用,后来反复调试,发现ajax 同步时,便可解决此问题。但至今还不清楚原因。如有朋友清楚,可在后面留言,不胜感激。
5.关闭当前模态框
函数很简单:$.pdialog.closeCurrent();便可在你需要关闭时调用即可。
为什么我要特别说一下这个问题呢?大家清楚,一般弹出模态框都是用来添加或修改数据的。那我们如何在关闭模态框后刷新父页面的数据呢?前一篇我们讲过,dwz是将页面动态加载到div上的,换言之,虽然模态框展示的是另外一个界面,但对位dwz讲,他就是div的内容。也就是说模态框可以直接调用父页面的函数,这里说父页面有点不确切,因为他们实际上在同一个页面中。回归话题,我们要刷新页面实际上去调用父页面的数据初始化方法即可。
这很方便,同时也带来了麻烦。如果项目界面较多,由于方法可以互相访问,如果命名的方法相同,可能会造成匪夷所思的结果。所以建议大家在使用时,每个功能后面加上页面功能描述,如添加用户界面初始话数据方法就可以写成:initData4AddUser();
以上是我个人的一些经验。当然在使用中,还会遇到各种各样的问题,我也不可能面面俱到。
示例demo就先不放上去了,需要的朋友请在后留言。
如有弊处,欢迎大家进行斧正。
DWZ在APS.NET WebForm中的使用(二)的更多相关文章
- DWZ在APS.NET WebForm中的使用(一)
1.前言 在最近的项目开发中,使用到了前端框架DWZ.DWZ是一款较为优秀的后台管理界面框架,但官方发布的文档确实令人汗颜,简单几页了事,有点对自己的产品不负责任了.同时感谢网友石头的热心帮助,在我这 ...
- APS.NET webform中的isPostBack
IsPostBack介绍Page.IsPostBack是一个标志:当前请求是否第一次打开. 调用方法为:Page.IsPostBack或者IsPostBack或者this.IsPostBack或者th ...
- webform 中使用ajax
常用的方式有 js –> WebService , js->*.ashx, js->WebAPI, js->MVC Controller->Action. 前两种就不说 ...
- webform中使用webapi,并且使用autofac
private void AutofacIoCRegister() { HttpConfiguration config = GlobalConfiguration.Configuration; if ...
- 【Ext.Net学习笔记】01:在ASP.NET WebForm中使用Ext.Net
Ext.NET是基于跨浏览器的ExtJS库和.NET Framework的一套支持ASP.NET AJAX的开源Web控件,包含有丰富的Ajax运用,其前身是Coolite. 下载地址:http:// ...
- 在ASP.NET非MVC环境中(WebForm中)构造MVC的URL参数
目前项目中有个需求,需要在WebForm中去构造MVC的URL信息,这里写了一个帮助类可以在ASP.NET非MVC环境中(WebForm中)构造MVC的URL信息,主要就是借助当前Http上下文去构造 ...
- Ext.Net学习笔记01:在ASP.NET WebForm中使用Ext.Net
Ext.Net是一个对ExtJS进行封装了的.net控件库,可以在ASP.NET WebForm和MVC中使用.从今天开始记录我的学习笔记,这是第一篇,今天学习了如何在WebForm中使用Ext.Ne ...
- ASP.NET WebForm中前台代码如何绑定后台变量
转载自 http://www.cnblogs.com/lerit/archive/2010/10/22/1858007.html 经常会碰到在前台代码中要使用(或绑定)后台代码中变量值的问题.一般有& ...
- 返璞归真 asp.net mvc (11) - asp.net mvc 4.0 新特性之自宿主 Web API, 在 WebForm 中提供 Web API, 通过 Web API 上传文件, .net 4.5 带来的更方便的异步操作
原文:返璞归真 asp.net mvc (11) - asp.net mvc 4.0 新特性之自宿主 Web API, 在 WebForm 中提供 Web API, 通过 Web API 上传文件, ...
随机推荐
- 利用IIS7 解决URL访问限制问题
网站可以通过URl直接访问一些不希望被访问的东西, 比如一些图片,js,css等等. 为了解决这个问题看了好多文章,不过毕竟我是新手菜鸟级别的,没有具体的解决方法,真心不知道怎么弄. 今天在看IIS的 ...
- ios变量的property属性设置和意义
IOS 的@property和@synthesize帮我们轻易的生成对象的getter和setter方法来完成对对象的赋值和访问.但是如果我们如果要动态设置对象的getter和setter方法可以使用 ...
- vs2013调试的时候卡顿
做毕业设计的时候忽然发现开始调试以后 会卡顿,这在前两天是没有的,纳尼,把我愁坏了. 首先以为程序或者vs出问题了.随后发现每次调试以后cpu急剧增加.随后就开始卡顿. 随后去网上搜索,发现两个答案. ...
- C++服务器设计(三):多线程模型设计
多线程探讨 如今大多数CPU都具有多个核心,为了最大程度的发挥多核处理器的效能,提高服务器的并发性,保证系统对于多线程的支持是十分必要的.我们在之前的设计都是基于单线程而言,在此章我们将对系统进行改进 ...
- setInterval && setTimeout || 定时器
来自w3school的解释 定时器setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式. setInterval() 方法会不停地调用函数,直到 clearInterva ...
- HTTP协议入门知识
HTTP超文本传输协议,是客户端浏览器和服务器通信的规范,是浏览器与服务器通信的协议,属于应用层的协议,web开发者了解HTTP协议非常重要.浏览器通过http协议请求服务器,完成请求服务器立刻关闭连 ...
- C# String 与 byte 互转
String转换为byte数组用byte[] arr = System.Text.Encoding.Default.GetBytes("abcde") byte数组转换为Strin ...
- 【2】开发环境的搭建,Ubuntu14.04
这里使用的是Ubuntu14.04 Unity 更新源 首先,将更新源更换为国内更新源,我这里使用的是网易的更新源 sudo gedit /etc/apt/sources.list deb http: ...
- C指针数组
#include<stdio.h> #include<stdlib.h> int main(void) { char const *str[] = { "this i ...
- 认识元数据和IL(中)<第四篇>
书接上回[第二十四回:认识元数据和IL(上)],我们对PE文件.程序集.托管模块,这些概念与元数据.IL的关系进行了必要的铺垫,同时顺便熟悉了以ILDASM工具进行反编译的基本方法认知,下面是时候来了 ...