zoukankan      html  css  js  c++  java
  • datatable转layui表格【偏原理】

    如题
    这个类负责把datatable转换为layui表格可以显示的内容。
    适合配合表格url字段的webapi服务端,为其返回响应字符串。
    代码如下:
    using System;
    using System.Web;
    using System.Text;
    using System.Data;
    using System.Net.Http;

    namespace MyClass
    {
    public class Layui_helper
    {
    static string datatable2json(DataTable table)
    {
    StringBuilder jsonBuilder = new StringBuilder();
    jsonBuilder.Append(""data":[");
    for (int i = 0; i < table.Rows.Count; i++)
    {
    jsonBuilder.Append("{");
    for (int j = 0; j < table.Columns.Count; j++)
    {
    jsonBuilder.Append(""");
    jsonBuilder.Append(table.Columns[j].ColumnName);
    jsonBuilder.Append("":"");
    jsonBuilder.Append(table.Rows[i][j].ToString());
    jsonBuilder.Append("",");
    }
    jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
    jsonBuilder.Append("},");
    }
    jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
    jsonBuilder.Append("]");
    return jsonBuilder.ToString();
    }
    //送入一个datatable,返回一个layui支持的表格字符串(HttpResponseMessage格式)
    public static HttpResponseMessage get_Layui_table(DataTable dt,int count=0,int status=0)
    {
    StringBuilder s = new StringBuilder();
    HttpResponseMessage responseMessage;
    if(count==0)
    {
    count = dt.Rows.Count;
    }
    s.Append("{"code":");
    s.Append(status.ToString() + ",");
    s.Append(""count":");
    s.Append(count.ToString() + ",");
    s.Append(datatable2json(dt));
    s.Append("}");
    responseMessage = new HttpResponseMessage { Content = new StringContent(s.ToString(), Encoding.GetEncoding("UTF-8"), "text/plain") };
    return responseMessage;
    }
    }
    }
    //对应前台页面格式开始
    /*
    <table id="demo" lay-filter="test"></table>
    <script src="~/layui/layui.js"></script>
    <script>
    layui.use('table', function () {
    var table = layui.table;

    table.render({
    elem: '#demo'
    , height: 512
    , 600
    //, data:[{ "id": "1", "姓名": "山本0", "年龄": "15" }, { "id": "2", "姓名": "山本1", "年龄": "16" }]
    , url: '/api/data/' //数据接口,默认会自动传递两个参数:?page=1&limit=30(初始值对应下面的limit和curr)
    , cols: [[ //表头
    { field: 'id', title: 'ID', 80, fixed: 'left' }
    , { field: '姓名', title: '名字', 80 }
    , { field: '年龄', title: '年纪', 80}
    ]]
    //, limit: 5//设定初始每页记录条数
    , page: {
    layout: ['limit', 'count', 'prev', 'page', 'next', 'skip'] //自定义分页布局
    , limits: [15, 23, 36]//选择每页显示几条,返回或直接设置用
    , groups: 4 //连续出现的页码个数,设置用
    , first: false //导航中不显示首页
    , last: false //导航中不显示尾页
    //, curr: 5 //设定初始在第 5 页
    }
    });

    });
    </script>
    */
    //对应前台页面格式结束

  • 相关阅读:
    Job for docker.service failed because the control process exited with error code. See
    连接数据库出现The server time zone value '�й���׼ʱ��' is unrecogni等问题的解决方案
    【面试】SSH 框架原理
    【面试】Spring 执行流程
    【面试】Redis
    Innosetup打包自动下载.net framework 动态库及替换卸载程序图标.
    分享一个带有合计行功能的DataGridView扩展
    记录一次系统优化
    使用 Cordova(PhoneGap)构建Android程序
    分享一个换肤解决方案
  • 原文地址:https://www.cnblogs.com/wanjinliu/p/11856541.html
Copyright © 2011-2022 走看看