前台:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<link rel="stylesheet" type="text/css" href="themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="themes/icon.css">
<link rel="stylesheet" type="text/css" href="demo.css">
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="jquery.easyui.min.js"></script>
</head>
<script type="text/javascript">
function tsearch() {
//根据传参查询结果,返回对应的数据
var test = $("#dropdownlist1 option:selected").text()
$('#dg').datagrid('options').pageNumber = 1;
$('#dg').datagrid('getPager').pagination({ pageNumber: 1 });
$('#dg').datagrid('options').url = 'SqlData.ashx?yymm=' + test;
$('#dg').datagrid("reload");
}
</script>
<script type="text/javascript">
$(function () {
$('#dg').datagrid({
pagination: true,
onLoadSuccess: function (data) {
if (data.rows.length > 0) {
//调用mergeCellsByField()合并单元格
mergeCellsByField("dg", "riqi,dhkhmc,fph,kpkhmc,cpmc");
}
},
columns: [[
{ field: 'id', title: 'id', align: 'center',hidden:true },
{ field: 'riqi', title: '日期', align: 'center' },
{ field: 'dhkhmc', title: '订货客户名称', align: 'center' },
{ field: 'fph', title: '发票号', align: 'center' },
{ field: 'kpkhmc', title: '开票客户名称', align: 'center' },
{ field: 'cpmc', title: '产品名称', align: 'center' },
{ field: 'cpgg', title: '产品规格', align: 'center' },
{ field: 'zhang', title: '张', align: 'center' },
{ field: 'KG', title: 'KG', align: 'center' },
{ field: 'yuanzhang', title: '元张', align: 'center' },
{ field: 'yuanKG', title: '元KG', align: 'center' },
{ field: 'xsje', title: '销售金额', align: 'center' },
{ field: 'hly', title: '回笼元', align: 'center' },
{ field: 'fkfs', title: '付款方式', align: 'center' },
]],
width: '100%',
striped: true, pagination: true, rownumbers: true, singleSelect: true, pageNumber: 1, pageSize: 40, pageList: [20,40], showFooter: true
});
})
//一定要用下面的方法,网上的其他方法都有问题,主要是相邻多列合并时,会出错!!!
function mergeCellsByField(tableID, colList) {
var ColArray = colList.split(",");
var tTable = $("#" + tableID);
var TableRowCnts = tTable.datagrid("getRows").length;
var tmpA;
var tmpB;
var PerTxt = "";
var CurTxt = "";
var alertStr = "";
for (j = ColArray.length - 1; j >= 0; j--) {
PerTxt = "";
tmpA = 1;
tmpB = 0;
for (i = 0; i <= TableRowCnts; i++) {
if (i == TableRowCnts) {
CurTxt = "";
}
else {
CurTxt = tTable.datagrid("getRows")[i][ColArray[j]];
}
if (PerTxt == CurTxt) {
tmpA += 1;
}
else {
tmpB += tmpA;
tTable.datagrid("mergeCells", {
index: i - tmpA,
field: ColArray[j],//合并字段
rowspan: tmpA,
colspan: null
});
tTable.datagrid("mergeCells", {//根据ColArray[j]进行合并
index: i - tmpA,
field: "Ideparture",
rowspan: tmpA,
colspan: null
});
tmpA = 1;
}
PerTxt = CurTxt;
}
}
}
</script>
<body>
<form id="form1" runat="server">
<div>
<asp:dropdownlist ID="dropdownlist1" runat="server" DataSourceID="SqlDataSource" DataTextField="Rqtext" DataValueField="Rqview"></asp:dropdownlist>
<asp:SqlDataSource ID="SqlDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:CQJBB %>" SelectCommand="SELECT DISTINCT CONVERT (VARCHAR(7),createdtime,120) AS Rqtext,CONVERT (VARCHAR(7),createdtime,120) AS Rqview FROM SA_SaleInvoice ORDER BY CONVERT (VARCHAR(7),createdtime,120) DESC"></asp:SqlDataSource>
<a href="#" data-options="iconCls:'icon-search'" class="easyui-linkbutton" οnclick="tsearch()">查询</a>
<a href="#" data-options="iconCls:'icon-redo'" class="easyui-linkbutton" οnclick="gotoExecl()">导出</a>
<script type="text/javascript">
function gotoExecl() {
var test = $("#dropdownlist1 option:selected").text()
window.open('toExecl.aspx?riqi=' + test)
}
</script>
</div>
<div>
<table id="dg">
</table>
</div>
</form>
</body>
</html>
后台:---不需要任何代码
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
}
}
}
SqlData.ashx代码:
<%@ WebHandler Language="C#" Class="SqlData" %>
using System.Configuration;
using System.Web;
using System.Data.SqlClient;
using System.Data;
using System.Text;
public class SqlData : IHttpHandler {
public void ProcessRequest (HttpContext context) {
if (!string.IsNullOrEmpty(System.Web.HttpContext.Current.Request.QueryString["yymm"]))
context.Response.ContentType = "text/html";int page = int.Parse(context.Request.Form["page"]);//页码
int rows = int.Parse(context.Request.Form["rows"]);//页容量
InitData(context,page,rows);
}
public bool IsReusable {
get {
return false;
}
}
private void InitData(HttpContext context,int pageindex,int pagesize)
{
if (!string.IsNullOrEmpty(System.Web.HttpContext.Current.Request.QueryString["yymm"]))
{
string Nyr = System.Web.HttpContext.Current.Request.QueryString["yymm"];
int total = 0;
string sql = string.Format("SELECT id,riqi,dhkhmc,fph,kpkhmc,cpmc,cpgg,zhang,KG,yuanzhang,yuanKG,xsje,hly,fkfs FROM KF_anyue('" + Nyr + "') where id between {0}+1 and {1}", (pageindex - 1) * pagesize, pagesize * pageindex);
DataSet ds = new DataSet();
DataTable dt = new DataTable();
StringBuilder sb = new StringBuilder();
string connsql = ConfigurationManager.ConnectionStrings["CQJBB"].ToString();
using (SqlConnection con = new SqlConnection(connsql))
{
con.Open();
SqlDataAdapter da = new SqlDataAdapter(sql, con);
da.Fill(ds);
dt = ds.Tables[0];
SqlCommand cmd = new SqlCommand("SELECT COUNT(id) FROM KF_anyue('" + Nyr + "')", con);//总行数
total = (int)cmd.ExecuteScalar();
con.Close();
}
sb.Append("{\"total\":" + total);
sb.Append(",");
sb.Append("\"rows\":[");
//转化为Json格式
foreach (DataRow row in dt.Rows)
{
sb.Append("{");
foreach (DataColumn column in dt.Columns)
{
sb.Append("\"" + column.ColumnName + "\":\"" + row[column.ColumnName].ToString() + "\",");
}
sb.Remove(sb.Length - 1, 1);
sb.Append("},");
}
sb.Remove(sb.Length - 1, 1);
sb.Append("]}");
context.Response.Write(sb.ToString());
}
}
}