这两天基于struts2的web项目需要报表排序功能,上网找了一些jquery的插件,找到了一个datatable。搞了两天,弄出个样子。但是导出功能不满足客户需求。所以暂时将该功能搁置了。自己在其中学了不少东西,现在整理整理。
开始,我的想法是通过ajax与数据库进行交换,进行排序。页面的代码。如下:
function sortData(){
if (oTable == null) {
$("#exportTable").show();
oTable = $('#exportTable').dataTable( {
"aaSorting": [[4, 'desc']],
"bProcessing": true, //加载数据时显示正在加载信息
"bServerSide": true, //指定从服务器端获取数据
"sAjaxSource": "" , //获取数据的ajax方法的URL
"fnServerData":retrieveData //与后台交互获取数据的处理函数
} );
}
oTable.fnDraw();
}
//函数的参数是固定,不能更改。
function retrieveData( sSource, aoData, fnCallback ) {
//查询条件称加入参数数组
var year =document.getElementById('year').value;
var month =document.getElementById('month').value;
$.ajax( {
type: "POST",
//contentType: "application/json", //这段代码不要加,我时延的是否后台会接受不到数据
url: sSource,
dataType:"json",
data:"jsonparam="+JSON.stringify(aoData)+"&year="+year+"&month="+month, //以json格式传递(struts2后台还是以string类型接受),year和month直接作为参数传递。
success: function(data) {
$("#url_sortdata").val(data.aaData);
fnCallback(data); //服务器端返回的对象的returnObject部分是要求的格式
}
});
}
jsp的页面元素
必须要有[table thead (包含th) tbody ](tfoot随意)
<table id="exportTable" width="100%" align='center'>
<thead>
<tr>
<th width ='10%' align='center' ></th>
<th width ='10%' align='center' ></th>
<th width ='10%' align='center' ></th>
<th width ='10%' align='center' ></th>
<th width ='10%' align='center' ></th>
<th width ='10%' align='center' ></th>
<th width ='10%' align='center' ></th>
<th width ='10%' align='center' ></th>
</tr>
</thead>
<tbody align='center' style="line-height: 18px;border: 1px solid #97bbdc;" >
</tbody>
<tfoot>
<tr>
<th width ='10%' align='center' ></th>
<th width ='10%' align='center' ></th>
<th width ='10%' align='center' ></th>
<th width ='10%' align='center' ></th>
<th width ='10%' align='center' ></th>
<th width ='10%' align='center' ></th>
<th width ='10%' align='center' ></th>
<th width ='10%' align='center' ></th>
</tr>
</tfoot>
</table>
后台的ajax方法:
public String sortMonthData() {
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
JSONArray jsonobj = JSONArray.fromObject(jsonparam);
Object sEcho = (JSONObject.fromObject(jsonobj.get(0)).get("value"));//这里我只是测验将sEcho取出
ptp_list = 查询数据库获取的数据
//将查询内容数据,封装成JSONArray的数据对象.(这里还可以使用二维数组,反正需要注意页面接受到的数据格式是[[1,2,3,5],[1,2,3,5]])
JSONArray jsonDataArray = new JSONArray() ;
Collection map = null;
for (int i = 0; i < ptp_list.size(); i++) {
map = ptp_list.get(i).values();
jsonDataArray.add(map);
}
//JSON对象,封装datatable使用到页面参数,[color=red]这几个参数是必须要[/color]的。
JSONObject returnjobj = new JSONObject();
returnjobj.put("sEcho", sEcho);
returnjobj.put("iTotalRecords", "1000");
returnjobj.put("iTotalDisplayRecords", "1000");
returnjobj.put("aaData",jsonDataArray);
//输出ajax返回值。
try {
response.getWriter().print(returnjobj.toString());
response.flushBuffer();
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
response.getWriter().close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}
以上,是我通过ajax进行交互的例子。
不过由于跟数据库交互的太多,自我推翻。
分享到:
相关推荐
使用`Merge`方法可以将两个`DataTable`合并成一个,其中所有列都会被添加到目标表中,而源表的数据会附加到目标表现有数据之后。 ```vb.net DataTable a = ...; DataTable b = ...; a.Merge(b); ``` #### 八、计算...
### ASP.NET中DataTable的使用详解 #### 一、概述 在ASP.NET开发中,`DataTable`是处理数据的一种非常强大的工具。它提供了类似数据库表的数据结构,并且支持各种操作如添加、删除、筛选和排序等。本文将详细介绍...
- 如果数据表结构固定且已知,可以直接定义DataTable的列结构,无需使用`GetSchemaTable()`方法。 通过以上步骤和代码实现,我们可以有效地将DataReader转换为DataTable,以便于后续的数据处理和展示。
这个"datatable用法 demo"是针对`Datatable`库的一个实例教程,旨在帮助开发者了解如何在实际项目中添加列和行。下面将详细阐述`Datatable`的核心概念、添加列和行的操作方法,以及如何通过实践应用这些知识。 首先...
Datatable 使用详解 Datatable 是 ADO.NET 中的一个重要组件,用于存储和管理内存中的数据。它可以独立于数据库存在,数据可以来自多个源,包括数据库、XML 等。Datatable 提供了灵活的数据存储和管理方式,支持...
本教程将深入探讨`DataTable`的使用方法,以`SpringBoot`和`DataTables Grid`为例,帮助你理解和实践其核心功能。 ### DataTables 的基本使用 `DataTables` 是一个基于jQuery的插件,能够将普通的HTML表格转变为...
处理方法需要返回JSON格式的数据,以供DataTable和Editor使用。 总的来说,Jquery DataTable结合.Net后端服务提供了丰富的表格功能,包括但不限于数据检索、排序、过滤、分页和编辑。EditorGenerator则增强了表格的...
这里值得注意的是,虽然`Type.GetType`方法可以实现类型获取的功能,但更常见且推荐的做法是直接使用类型本身,例如: ```csharp dc = tblDatas.Columns.Add("Num", typeof(int)); ``` 这样做更加简洁明了,也避免了...
1. 使用 DataTable 构造函数创建 DataTable 对象,例如:DataTable NewTable = new DataTable(TableName); 2. 使用 DataAdapter 对象的 Fill 方法或 FillSchema 方法在 DataSet 中创建 DataTable,例如: ```csharp ...
本篇文章将详细讲解如何使用C#语言连接不同的数据库,并通过执行SQL语句获取DataTable对象,其中包括Access、SQL Server、Oracle以及MySQL四种常见数据库的连接方法。 1. **C#与Access数据库连接** Access数据库...
2. **属性和方法**:DataTable对象拥有丰富的属性和方法,可以方便地进行数据查询、筛选、排序和计算。例如,`find`函数用于查找满足特定条件的行,`sort`用于对数据进行排序,`sum`、`mean`等则用于统计计算。 3. ...
总结起来,C#中删除DataTable多行的方法主要包括:使用Delete()方法标记行并随后调用AcceptChanges(),或者直接使用RemoveAt()方法删除行。在处理大量数据时,应考虑性能优化,如先收集待删除行的索引,然后按降序...
C# DataTable 的詳細用法 DataTable 是 C# 中的一个重要组件,用于存储和操作数据。在实际项目中,DataTable 经常被用来存储和处理大量数据。如果使用得当,DataTable 不仅能使程序简洁实用,而且能够提高性能,...
如果需要一次性添加多行数据,可以使用`Load`方法,配合`DataSet`和`DataTableAdapter`来读取数据库中的数据。例如,从SQL Server获取数据: ```csharp using (SqlConnection connection = new SqlConnection...
3. **使用`echarts`绘制图表**:当`dataTable`中的数据发生变化时,我们需要更新`echarts`的配置,将新选择的数据传递给`echarts`的`setOption`方法,重新绘制图表。 4. **iframe通信**:如果`echarts`和`dataTable...
下面将详细介绍`DataTable`的常见使用、自定义方法、`Select`方法的四种重载,以及在项目中如何进行筛选和排序。 首先,让我们了解`DataTable`的基本用法。`DataTable`对象通常在内存中创建和管理,可以通过`...
1. 插入数据:使用`Rows.Add()`方法可以向DataTable中添加新的数据行。 2. 更新数据:修改DataRow的字段值,然后调用`AcceptChanges()`方法提交更改。 3. 删除数据:通过`Rows.Remove()`或设置`RowState`为Deleted来...
例如,你可以创建一个DataTable,然后通过AddRow方法添加数据行,或者使用Select方法来筛选满足特定条件的行。 `DataView`则是DataTable的一个视图,它提供了对DataTable数据的不同展示方式。DataView允许动态地...
总结DataTable,DataSet的使用方法,对Datagirdview的数据加载。
### C# 中维数组转换为 DataTable 的三种方法 在 C# 开发中,经常会遇到需要将数据从一种格式转换到另一种格式的需求,特别是在处理 Excel 数据时。本文将介绍如何使用 C# 将多维数组转换成 `DataTable`,这对于...