JMJS系统总结系列----Jquery分页扩展库(五)

文件名:JS/common/Grid.js

简介:这是基于Jquery的扩展库

用途:这个扩展库控件是针对JMJS系统的列表页面而开发的。主要功能包括:分页、排序、全选。

模板的创建、设置

A、 创建xslt列表模版

在列表模板中引入一下模板

<xsl:import href="../common/BlankLineExtend.xslt"/>

<xsl:import href="../common/Pagination.xslt"/>

<xsl:import href="../common/Function.xslt"/>

B、 创建列表的表头

<table id="tblList" border="0" cellpadding="0" cellspacing="0" class="tab_style001" width="100%">

<thead>

<tr style="font-size:12px;">

<th width="25px" align="center">

<input type="checkbox" id="chkAll" />

</th>

<th width="80px" align="center" order="ProjectAcceptNum">受理编号</th>

<th width="80px" align="center" order="AcceptDate" >受理日期</th>

<th width="150px" align="center" order="UnitName">申请单位</th>

<th width="*" align="center" order="ProjectName">项目名称</th>

<th width="150px" align="center" order="ApplyCategory">项目类型</th>

<th width="100px" align="center" order="UnitTel" >联系电话</th>

</tr>

</thead>

请注意:<thead></thead><th></th><tbody></tbody>这三个标签
如需要设置全选功能,请在第一例中添加CheckBox标签。

如果需要排序,请在<th>标签中设置order属性。

C、 创建数据列表

<tbody>

<xsl:for-each select="ReturnResult/Data/Accept">

<tr>

<td align="center">

<input type="checkbox" id="{AcceptID}" value="{AcceptID}" />

</td>

<td height="25" align="left">

<xsl:value-of select="UnitTel"/>

</td>

</tr>

</xsl:for-each>

<!--空行扩展.开始-->

<xsl:if test="ReturnResult/@PageCount=ReturnResult/@CurentPage">

<xsl:if test="ReturnResult/@RecordCount - ReturnResult/@EndRecord * ReturnResult/@PageCount &lt; 0">

<xsl:call-template name="BlankLineExtend">

<xsl:with-param name="RowNum" select="ReturnResult/@EndRecord * ReturnResult/@PageCount - ReturnResult/@RecordCount" />

<xsl:with-param name="ColumnNum">7</xsl:with-param>

</xsl:call-template>

</xsl:if>

</xsl:if>

<!--空行扩展.结束-->

<!--没有记录时执行-->

<xsl:if test="ReturnResult/@RecordCount= 0">

<xsl:call-template name="BlankLineExtend">

<xsl:with-param name="RowNum" select="ReturnResult/@EndRecord" />

<xsl:with-param name="ColumnNum">7</xsl:with-param>

</xsl:call-template>

</xsl:if>

</tbody>

</table>

列表的数据都包含在<tbody></tbody>标签中。

日常应用中,空行扩展和没有记录时执行的salt,请注意参数<xsl:with-param name="ColumnNum">7</xsl:with-param>的设置。当列表有n列时,参数设置为n。

D、 在</table>标签的后面添加

<xsl:call-template name="Pagination">

<xsl:with-param name="StartRecord" select="ReturnResult/@StartRecord"/>

<xsl:with-param name="PageSize" select="ReturnResult/@EndRecord"/>

<xsl:with-param name="RecordCount" select="ReturnResult/@RecordCount" />

<xsl:with-param name="CurentPage" select="ReturnResult/@CurentPage"/>

<xsl:with-param name="PageCount" select="ReturnResult/@PageCount"/>

</xsl:call-template>

用于设置分页控件的相关数据

Grid.js插件的介绍

//****************************************************

// 名 称:Grid

// 说 明:Grid的Jquery插件,提交分页、排序等功能初始化

// 参 数:opts{

// hasCheckbox:true,//是否有Checkbox全选

// sort:true,//是否排序

// queryParams:'',//查询参数

// url:'',//提交的URL

// callbackFun,

// }

// 返 回 值:无

//****************************************************

$.fn.Grid = function(opts) {

opts.tableId = $(this).attr("id");

options = opts;

setPagerButton();

initPagerBar();

if (opts.hasCheckbox) {

bindCheckbox();

}

if (opts.sort)

sortTable(opts.tableId);

setRowSelect(); //设置鼠标结过时的样式和选择Checkbox

};

//****************************************************

// 名 称:RefreshGrid

// 说 明:Grid的Jquery插件刷新数据,提交分页、排序等功能

// 参 数:opts{

// hasCheckbox:true,//是否有Checkbox全选

// sort:true,//是否排序

// queryParams:'',//查询参数

// url:''//提交的URL

// }

// 返 回 值:无

//****************************************************

$.fn.RefreshGrid = function(opts) {

$("#curentPage").val(1);

setPagerButton();

options = opts;

options.tableId = $(this).attr("id");

$("#orderby").val("");

callServer(1, $("#limit").val());

};

//****************************************************

// 名 称:Refresh

// 说 明:刷新当前页(一定要在初始后才能调用此方法)

// 参 数:无

// 返 回 值:无

//****************************************************

$.fn.Refresh = function() {

$("#curentPage").val(1);

var start = parseInt($("#limit").val()) * (parseInt($("#curentPage").val()) - 1) + 1;

var end = parseInt($("#limit").val());

callServer(start, end);

};

新建列表匹配的js,调用列表初始化方法,初始化列表

//页面初始化后执行

$(document).ready(function() {

initSkin();

$("#tblList").Grid({ sort: true, hasCheckbox: true, queryParams: $("#form1").formSerialize(), url: "Accept.do?action=GetAcceptGridHtml" });

getGetApplyCategorys();

});

//****************************************************

// 名 称:generalSearch

// 说 明:常规查询

// 参 数:无

// 返 回 值:无

//****************************************************

function generalSearch() {

queryParams = $("#form1").formSerialize();

$("#tblList").RefreshGrid({ sort: true, hasCheckbox: true, queryParams: queryParams, url: "Accept.do?action=GetAcceptGridHtml" });

}

//****************************************************

// 名 称:advanceQueryOK

// 说 明:高级查询的确定按钮事件

// 参 数:无

// 返 回 值:无

//****************************************************

function advanceQueryOK() {

queryParams = $("#frmAdvancedQuery").formSerialize();

dialog.close();

$("#tblList").RefreshGrid({ sort: true, hasCheckbox: true, queryParams: queryParams, url: "Accept.do?action=GetAcceptGridHtml" });

}

posted @ 2011-08-31 15:49  远大 光明  阅读(312)  评论(0编辑  收藏  举报