easyUI完美合併單元格

前臺:

<%@ 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" onclick="tsearch()">查詢</a>
        <a href="#" data-options="iconCls:'icon-redo'" class="easyui-linkbutton" onclick="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());
        }
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章