table中点击表头实现排序的功能示例介绍

   2015-06-26 0
核心提示:获取上次点击的表头的名称和这次点击的表头的名称做比较,如果两者相同就按原先相反的顺序排列,否则新列升序排列

<a href="javascript:setOrder();">表头名字</a>,页面中获取上次点击的表头的名称和这次点击的表头的名称做比较,如果两者相同就按原先相反的顺序排列,否则新列升序排列,

获取排列顺序的列名及排列顺序以后,传到后台获取相应sql,添加order by 语句,完成排序功能

排序顺序值可在form中存放在隐藏域中,思路就是这样。

例如在使用Birt报表工具创建报表需要点击表头的名称排序的功能时,可以再表头名称处增加一个超链接,链接内容为TargetURL+表头名称 ,然后在初始化方法initialize()中判断原有的表头名称是否和传入的表头名称相同以判断升序和降序,然后获取sql,添加排序语句,完成功能。以下是我做的报表的一个实例。

复制代码 代码如下:

dataSetName = "fundcatagoryseasontemplate";
sortCol = reportContext.getHttpServletRequest().getParameter("sortCol");//获取需要排序的列名
sortDir = reportContext.getHttpServletRequest().getParameter("sortDir");//获取排列顺序
currentURL = reportContext.getHttpServletRequest().getRequestURL()+"?"+reportContext.getHttpServletRequest().getQueryString();
sortClause = "";
targetURL = "";

if(sortDir != null){
if(sortDir.indexOf("ASC") != -1){
sortDir = "DESC";
}else{
sortDir = "ASC";
}
}else{
sortDir = "ASC";
}

if(sortCol != null && sortCol.length != 0){
sortClause = " order by " + sortCol + " " + sortDir;
}

reportContext.getReportRunnable().getDesignInstance().getDataSet(dataSetName).queryText += sortClause; //获取并修改底层sql语句

if(currentURL.indexOf("__sorting=") != -1 ){
targetURL = currentURL.substring(0,currentURL.indexOf("__sorting")-1 );
}else{
targetURL = currentURL;
}

targetURL = targetURL + "&__sorting=true&sortDir="+sortDir+"&sortCol=";//修改url

 
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • lua 实现tableToString
    function tableToString(studentNum) local str ="{ " str = str.."\n" for k, v in pairs(studentNum) doif type(v) ~= "table" thenstr = str.."[\""..k.."\"]"str = str..":"str = str..vstr = st
    02-09
  • [Rust] 变量的属性: 不可变(immutable), 可变(m
    变量的可变性在 Rust 中, 变量可以具有下面的属性。immutable: 不可变变量mutable: 可变变量shadowing: 重定义(遮蔽)一个变量const: 常量static: 静态变量不可变变量(immutable) vs 可变变量(mut)Rust 的安全哲学要求变量默认是不可变的。fn main() {// 定义
    02-09
  • Lua中的weak表——weak table
      弱表(weak table)是一个很有意思的东西,像C++/Java等语言是没有的。弱表的定义是:A weak table is a table whose elements are weak references,元素为弱引用的表就叫弱表。有弱引用那么也就有强引用,有引用那么也就有非引用。我们先要厘这些基本概念
    02-09
  • Gink掉过的坑(一):将CCTableView导入到lua中
    环境:系统:win7 64位cocos2dx:cocos2d-2.1rc0-x-2.1.3  Visual Studio: 2012由于项目是用lua写的,需要将cocos2dx中的方法导入到lua中, 但是cocos2dx官方并没有导出全部的接口,有些需要开发者自己导出。这里我们需要用CCTableView,这个类并不完善,还
    02-09
  • Lua中使用table实现的其它5种数据结构
    Lua中使用table实现的其它5种数据结构
     lua中的table不是一种简单的数据结构,它可以作为其他数据结构的基础,如:数组,记录,链表,队列等都可以用它来表示。 1、数组在lua中,table的索引可以有很多种表示方式。如果用整数来表示table的索引,即可用table来实现数组,在lua中索引通常都会从1
    02-09
  • Lua中的table函数库 table lua
    table.concat(table, sep,  start, end)concat是concatenate(连锁, 连接)的缩写. table.concat()函数列出参数中指定table的数组部分从start位置到end位置的所有元素, 元素间以指定的分隔符(sep)隔开。除了table外, 其他的参数都不是必须的, 分隔符的默认值是
    02-09
  • lua的克隆函数,table的深度拷贝 lua复制table
    lua的克隆函数,table的深度拷贝 lua复制table
    --深度拷贝Tablefunction DeepCopy(obj)local InTable = {};local function Func(obj)if type(obj) ~= "table" then --判断表中是否有表return obj;endlocal NewTable = {};--定义一个新表InTable[obj] = NewTable;--若表中有表,则先把表给InTable,再用NewT
    02-09
  • lua的table表处理 及注意事项
    lua,一款很轻量级很nice很强大的脚本语言,做为lua中使用最为频繁的table表,在使用之时还是有颇多的好处与坑的;下面是大牛 云风的一片关于lua table的blog,可使得对lua table内在机制 窥测一二;lua 的整体效率是很高的,其中,它的 table 实现的很巧妙为
    02-09
  • Unity热更新03-C#调用XLua-09-Lua表映射到 XLua
    using System.Collections;using System.Collections.Generic;using UnityEngine;using XLua;public class Lesson9_CallLuaTable : MonoBehaviour{void Start(){LuaMgr.GetInstance().Init();LuaMgr.GetInstance().DoLuaFile("Main");//不建议使用LuaTable和L
    02-09
  • Lua 获取table的长度
    #!/usr/bin/lua-- Lua获取tbale长度算法--[[Lua很少使用求长度的算法,假设table的类型是数组,可以使用tbale.getn(table)或者#但是也有风险,如果数组中有元素的值是nil,那么计算长度就会出错假设tbale是键值对,那么tbale.getn(table)或者#都无法使用,只
    02-09
点击排行