首页 > 其他 > 详细

EasyUI需注意的问题01

时间:2015-05-17 15:04:00      阅读:154      评论:0      收藏:0      [点我收藏+]

一、EasyUI-Datagrid分页

在创建数据表格(DataGrid)的时候,通过设置‘pagination‘ 属性为 true,可以在数据表格的底部生成一个分页工具栏。

<table id="dg" class="easyui-datagrid" 
       url="data/datagrid_data.json"
       pagination="true">
	<thead>
		<tr>
			<th field="xxx" width="80">xxx</th>
                     <th field="xxx" width="80">xxx</th> 
                     <th field="xxx" width="80">xxx</th> 
		</tr>
	</thead>
</table>
当我们向指定的url请求数据时,pagination将会发送两个参数到服务器:
page:页面,起始值1
rows:每页显示行数
在分页栏上,一般会显示总共有多少记录,当前显示的记录(第几页);
因此服务器向前端发送数据的时候,除了数据记录之外,还需要传递当前查询总共有多少记录。
而在EasyUI中,向datagrid传递的数据格式必须为字典类型的json数据。
该数据包含两个键:total(当前查询的总记录数)、rows(返回的记录数据)
分页思想:一般的分页会根据page和rows来决定返回的记录,跳过前面的(page-1)*rows条记录,返回剩下的rows条记录(少于rows条则全部返回)。
对数据的筛选一般反正数据库中进行(当应用与数据库不在同一机子时,若在应用所在服务器进行数据筛选,会导致网络传输大量的无效记录,而当记录总数较大的时候,也会占用较多的内存进行数据的筛选)
而在数据库中进行筛选,为了保证每次查到的数据的顺序是一致的,必须对某个唯一列进行排序(一般是主键)。
具体的操作可以为:先查出前(page-1)*rows条记录的id,然后选择记录id不在查出数据之中的数据的前rows条记录(SELECT TOP rows FROM tableName WHERE id not in(SELECT TOP (page-1)*rows id from tableName order by id) order by id)
这种分页当page很大的时候,会过滤掉大量的数据,以至于效率不高。
SQLServer2005提供了一个row_number()函数用于分页,ROW_NUMBER() 就是生成一个顺序的行号,而生成顺序的标准是由后面紧跟的OVER(ORDER BY id)子句决定的:

SELECT TOP rows *  FROM

(
       SELECT top rows ROW_NUMBER() OVER (ORDER BY id) AS RowNo FROM TABLE
) AS A WHERE RowNo >  (page-1)*rows

二、easyui-datetimebox日期时间控件

通过官网的例子为datetimebox控件设置值时,如下:

<input class="easyui-datetimebox" name="birthday" id="dt"
          data-options="required:true,showSeconds:true" value="03/04/2010 12:30:29" style="width:250px;height:30px;">

结果显示的时候,时间部分对正确的,但日期部分确实当前之前(这是为什么呢),当通过getValue函数获取控件的值时,得到的时间格式是:

yyyy-MM-dd hh:mm:ss

于是,试着将时间格式也设置相同,就显示正确了。难道datetimebox只能支持上述的时间格式?

EasyUI需注意的问题01

原文:http://www.cnblogs.com/Jxwz/p/4509575.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!