miniui 分页

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>DataGrid 数据表格</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    </head>
    <h2>Index</h2>
    <link href="../demo.css" rel="stylesheet" type="text/css" />
<script src="~/Scripts/miniui/boot.js"></script>
  
    <body>
        <h1>Client Pagination 客户端分页</h1>
        <div id="datagrid1" class="mini-datagrid" style="width:600px;height:280px;" idField="id" pageSize="10" multiSelect="true">
            <div property="columns">
                @*<div type="indexcolumn"></div>
                <div type="checkcolumn"></div>
                <div field="loginname" width="120" headerAlign="center" vtype="required;email" autoEscape="true" allowSort="true">员工帐号</div>
                <div field="age" width="100" allowSort="true">年龄</div>
                <div field="gender" width="100" allowSort="true" align="center" headerAlign="center">性别</div>
                <div field="country" width="100" headerAlign="center">国家</div>*@
                <div type="checkcolumn" headeralign="center" ="center"></div>
                        <div type="indexcolumn" headeralign="center" ="center">序号</div>
                        <div field="d1" headeralign="center" ="center" width="80">时间</div>
                        <div field="d2" headeralign="center" ="center" width="80">赛制</div>
                        <div field="d3" headeralign="center" ="center" width="80">战绩</div>
            </div>
        </div>
    </body>

    <script type="text/javascript">
    mini.parse();
    var grid = mini.get("datagrid1");
    grid.sizeList = [1,2,3,5, 10, 20, 50, 100]
    // 分页填充细节处理
    function fillData(pageIndex, pageSize, dataResult, grid) {

        var data = dataResult.data, totalCount = dataResult.total;

        var arr = [];
        var start = pageIndex * pageSize, end = start + pageSize;
        for (var i = start, l = end; i < l; i++) {
            var record = data[i];
            if (!record) continue;
            arr.push(record);
        }


        grid.setTotalCount(totalCount);
        grid.setPageIndex(pageIndex);
        grid.setPageSize(pageSize);

        grid.setData(arr);
    }

    // 监听分页前事件,阻止后自行设置当前数据和分页信息
    grid.on("beforeload", function (e) {
        e.cancel = true;

        var pageIndex = e.data.pageIndex, pageSize = e.data.pageSize;
        fillData(pageIndex, pageSize, dataResult, grid);
    });

    

    // 获取所有数据和总记录数 { total: 100, data: [...] }
    var dataResult = null;
    $.ajax({
        url: 'data.txt',
        dataType: 'text',
        async: false,
        success: function (text) {
            dataResult = mini.decode(text);
        }
    });

    // 第一次设置
    fillData(0, grid.getPageSize(), dataResult, grid);


    </script>
</html>
 public void JsonHtml()
        {

            ModelzhuEntities me = new ModelzhuEntities();

            //使用Lamabda表达式来获取数据  
            //返回一个List<T>的对象来存储文章列表  
            List<Models.Student> list = me.Students.Where(p=>p.depID >0).ToList ();

            ModelHandler<Models.Student> mh = new ModelHandler<Student>();
         DataTable dtm=   mh.FillDataTable(list );




            //使用ViewData来传递list对象  
            ViewData["DataList"] = list;

            //新建表
            int sum = 10;
            DataTable dt = new DataTable();
            DataColumn dc1 = new DataColumn("d1", Type.GetType("System.String"));
            DataColumn dc2 = new DataColumn("d2", Type.GetType("System.String"));
            DataColumn dc3 = new DataColumn("d3", Type.GetType("System.String"));
            dt.Columns.Add(dc1);
            dt.Columns.Add(dc2);
            dt.Columns.Add(dc3);
            //循环添加数据
            for (int i = 1; i < sum + 1; i++)
            {
                DataRow dr = dt.NewRow();
                dr["d1"] = "2015-10-20";
                dr["d2"] = "排位赛 第" + i + "";
                dr["d3"] = "10杀 0死 0助攻";
                dt.Rows.Add(dr);
            }
            //设置表的页码,如果缺失,会导致数据无法显示
            int pageIndex = Convert.ToInt32(Request["pageIndex"]);
            int pageSize = Convert.ToInt32(Request["pageSize"]);
            //将数据转换相应的格式
            ArrayList AlData = DataTableToArrayList(dt);
            int index = pageIndex, size = pageSize;
            ArrayList data = new ArrayList();
            int start = index * size, end = start + size;
            for (int i = 0, l = AlData.Count; i < l; i++)
            {
                Hashtable record = (Hashtable)AlData[i];
                if (record == null) continue;
                if (start <= i && i < end)
                {
                    data.Add(record);
                }
            }
            Hashtable result = new Hashtable();
            result["data"] = data;
            result["total"] = sum;
            //输出数据和总条数
          string returnOne=  JsonUtil.ToJson(dtm, dtm.Rows.Count);
            Response.Write(returnOne);
        }

        private static ArrayList DataTableToArrayList(DataTable data)
        {
            ArrayList array = new ArrayList();
            for (int i = 0; i < data.Rows.Count; i++)
            {
                DataRow row = data.Rows[i];
                Hashtable record = new Hashtable();
                for (int j = 0; j < data.Columns.Count; j++)
                {
                    object cellValue = row[j];
                    if (cellValue.GetType() == typeof(DBNull))
                    {
                        cellValue = null;
                    }
                    record[data.Columns[j].ColumnName] = cellValue;
                }
                array.Add(record);
            }
            return array;
        }
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Web;

/// <summary>
///JsonUtil 的摘要说明
/// </summary>
public class JsonUtil
{
    private JsonUtil() { }

    /*返回 json数组   格式为  [{name1:value1, name2:value2}]   */
    public static string ToJsArray(DataTable dt)
    {
        if (dt == null || dt.Rows.Count == 0)
        {
            return "[]";
        }
        StringBuilder _json = new StringBuilder();
        _json.Append("[");
        for (int i = 0, lr = dt.Rows.Count; i < lr; i++)
        {
            _json.Append("{");
            for (int j = 0, lc = dt.Columns.Count; j < lc; j++)
            {
                _json.Append("\"");
                _json.Append(ToString(dt.Columns[j].ColumnName).ToLower());
                _json.Append("\":\"");
                _json.Append(StrReplace(ToString(dt.Rows[i][j])));
                _json.Append("\"");
                if (j < lc - 1)
                {
                    _json.Append(",");
                }
            }
            _json.Append("}");
            if (i < lr - 1)
            {
                _json.Append(",");
            }
        }
        _json.Append("]");
        return _json.ToString();
    }
    /*返回 通用json  格式为  {total:0,data:[{}]}*/
    public static string ToJson(DataTable dt, int total)
    {
        if (dt != null && dt.Rows.Count > 0)
        {
            StringBuilder Json = new StringBuilder();
            Json.Append("{\"total\":").Append(total).Append(",");
            Json.Append("\"data\":[");
            for (int i = 0, lr = dt.Rows.Count; i < lr; i++)
            {
                Json.Append("{");
                for (int j = 0, lc = dt.Columns.Count; j < lc; j++)
                {
                    Json.Append("\"" + ToString(dt.Columns[j].ColumnName).ToLower() + "\":\"" + StrReplace(ToString(dt.Rows[i][j])) + "\"");
                    if (j < lc - 1)
                    {
                        Json.Append(",");
                    }
                }
                Json.Append("}");
                if (i < lr - 1)
                {
                    Json.Append(",");
                }
            }
            Json.Append("]}");
            return Json.ToString();
        }
        return "{\"total\":0,\"data\":[]}";
    }
    //转换 json tree
    public static string ToJsonTree(DataTable dt, TreeAttr attr)
    {
        if (attr == null)
        {
            throw new ArgumentException("未指定节点对象属性");
        }
        if (dt == null || dt.Rows.Count == 0)
        {
            return "[]";
        }

        StringBuilder _json = new StringBuilder();
        _json.Append("[");
        Hashtable _table = new Hashtable();   //散列表,用于临时存储节点对象
        NodeTree _node = null;

        //将 datatable 转换到散列表中
        for (int i = 0, l = dt.Rows.Count; i < l; i++)
        {
            _node = new NodeTree();
            _node.ID = ToString(dt.Rows[i][attr.ID]);
            _node.Text = ToString(dt.Rows[i][attr.Text]);
            _node.ParentID = ToString(dt.Rows[i][attr.Pid]);
            _node.Children = new List<NodeTree>();
            _table.Add(_node.ID, _node);
        }

        IList<NodeTree> _roots = new List<NodeTree>();   //用于存储根节点对象
        foreach (object key in _table.Keys)
        {
            _node = (NodeTree)_table[key];
            if (string.IsNullOrEmpty(_node.ParentID))  //如果父节点为空,则表示是根节点
            {
                _roots.Add(_node);
            }
            else
            {
                //如果不是根节点,则找到该节点的父节点,并将该节点添加到父节点下
                if (_table[_node.ParentID] != null)
                {
                    ((NodeTree)_table[_node.ParentID]).AddChild(_node);
                }
            }
        }

        //遍历根节点返回 json
        for (int k = 0, l = _roots.Count; k < l; k++)
        {
            _json.Append(_roots[k].ToString());
            if (k < l - 1)
            {
                _json.Append(",");
            }
        }
        _json.Append("]");
        //JsonConvert.SerializeObject(_roots);

        return _json.ToString();
    }
    //转换 json menu
    public static string ToJsonMenu(DataTable dt, MenuAttr2 attr)
    {
        if (attr == null)
        {
            throw new ArgumentException("未指定节点对象属性");
        }
        if (dt == null || dt.Rows.Count == 0)
        {
            return "[]";
        }

        StringBuilder _json = new StringBuilder();
        _json.Append("[");
        Hashtable _table = new Hashtable();   //用于临时存储节点对象
        IList<MenuNode2> _nodes = new List<MenuNode2>();
        MenuNode2 _node = null;
        foreach (DataRow row in dt.Rows)
        {
            _node = new MenuNode2();
            _node.ID = ToString(row[attr.Id]);
            _node.Pid = ToString(row[attr.ParentID]);
            _node.Text = ToString(row[attr.FunctionName]);
            _node.Url = ToString(row[attr.Url]);
            _node.Img = ToString(row[attr.Img]);
            _node.isUsed = ToInt32(row[attr.IsUsed]);
            _node.Sort = ToDouble(row[attr.Sort]);
            _node.ilevel = ToInt32(row[attr.ilevel]);
            _node.model = ToString(row[attr.model]);
            /*_node.ID = ConvertHelper.ToString(row[attr.ID]);
            _node.Text = ConvertHelper.ToString(row[attr.Text]);
            _node.Pid = ConvertHelper.ToString(row[attr.Pid]);
            _node.Url = ConvertHelper.ToString(row[attr.Url]);
            _node.IconCls = ConvertHelper.ToString(row[attr.IconCls]);
            _node.Shortcuts = ConvertHelper.ToString(row[attr.Shortcuts]);
            _node.IsBillPage = ConvertHelper.ToBoolean(row[attr.IsBillPage]);
            _node.ProgramID = ConvertHelper.ToInt32(row[attr.ProgramID]);
             */
            if (_table[_node.ID] == null)
            {
                _table.Add(_node.ID, _node);
                _nodes.Add(_node);
            }
        }

        //int i = 0, total = _table.Count;
        //foreach (object key in _table.Keys)
        //{
        //    _json.Append(((MenuNode)_table[key]).ToString());
        //    if (i++ < total - 1)
        //    {
        //        _json.Append(",");
        //    }
        //}
        for (int i = 0, l = _nodes.Count; i < l; i++)
        {
            _json.Append(_nodes[i].ToString());
            if (i < l - 1)
            {
                _json.Append(",");
            }
        }
        _json.Append("]");
        return _json.ToString();
    }
    public static double ToDouble(object s)
    {
        double result = 0;
        if (s != null && s != DBNull.Value && !string.IsNullOrEmpty(s.ToString()))
        {
            double.TryParse(s.ToString(), out result);
        }
        return result;
    }

    /// <summary>
    /// 字符串转为INT32 型
    /// </summary>
    /// <param name="s">需转换字符串</param>
    /// <returns>返回INT型,转换失败返回 0</returns>
    public static int ToInt32(object s)
    {
        int result = 0;
        if (s != null && s != DBNull.Value && !string.IsNullOrEmpty(s.ToString()))
        {
            if (s.ToString().Equals("True", StringComparison.CurrentCultureIgnoreCase))
                result = 1;
            else if (s.ToString().Equals("False", StringComparison.CurrentCultureIgnoreCase))
                result = 0;
            else
                int.TryParse(s.ToString(), out result);
        }
        return result;
    }
   
    public static string ToString(object s)
    {
        if (s == null || string.IsNullOrEmpty(s.ToString()))
            return string.Empty;
        else
            return s.ToString();
    }
    //转换通用的 json格式
    public static string ToCommonJson(DataTable dt)
    {
        StringBuilder _json = new StringBuilder();
        _json.Append("{items:[");
        if (dt.Rows.Count > 0)
        {
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                _json.Append("{");
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    _json.Append("\"" + ToString(dt.Columns[j].ColumnName) + "\":\"" + StrReplace(ToString(dt.Rows[i][j])) + "\"");
                    if (j < dt.Columns.Count - 1)
                    {
                        _json.Append(",");
                    }
                }
                _json.Append("}");
                if (i < dt.Rows.Count - 1)
                {
                    _json.Append(",");
                }
            }
        }
        _json.Append("]}");
        return _json.ToString();
    }
    public static string StrReplace(string str)
    {
        str = str.Replace("\"", "\\\"");
        str = str.Replace("\n", "");
        str = str.Replace("\r", "");
        return str;
    }

    //树节点对象
    private class NodeTree
    {
        public string ID { get; set; }
        public string Text { get; set; }
        public string ParentID { get; set; }
        public List<NodeTree> Children { get; set; }
        public void AddChild(NodeTree node)
        {
            Children.Add(node);
        }
        public override string ToString()
        {
            StringBuilder _json = new StringBuilder();
            _json.Append("{id:\"").Append(ID).Append("\",");
            _json.Append("text:\"").Append(Text).Append("\"");
            if (Children.Count > 0)
            {
                _json.Append(",children:[");
                for (int i = 0, l = Children.Count; i < l; i++)
                {
                    _json.Append(Children[i].ToString());
                    if (i < l - 1)
                    {
                        _json.Append(",");
                    }
                }
                _json.Append("]");
            }
            _json.Append("}");

            return _json.ToString();
        }
    }
    //菜单节点对象
    private class MenuNode
    {
        public string ID { get; set; }
        public string Text { get; set; }
        public string Pid { get; set; }
        public string Url { get; set; }
        public string IconCls { get; set; }
        public string Shortcuts { get; set; }
        public bool IsBillPage { get; set; }
        public int ProgramID { get; set; }
        public override string ToString()
        {
            StringBuilder _json = new StringBuilder();
            if (string.IsNullOrEmpty(Pid) || Pid == "0")
            {
                _json.Append("{id:\"").Append(ID).Append("\",");
                _json.Append("isbillpage:").Append(IsBillPage == true ? "true" : "false").Append(",");
                _json.Append("programid:").Append(ProgramID).Append(",");
                _json.Append("text:\"").Append(Text).Append("\"}");
            }
            else
            {
                _json.Append("{id:\"").Append(ID).Append("\",");
                _json.Append("text:\"").Append(Text).Append("\",");
                _json.Append("pid:\"").Append(Pid).Append("\",");
                _json.Append("isbillpage:").Append(IsBillPage == true ? "true" : "false").Append(",");
                _json.Append("programid:").Append(ProgramID).Append(",");
                _json.Append("url:\"").Append(Url).Append("\",");
                _json.Append("shortcuts:\"").Append(Shortcuts).Append("\",");
                _json.Append("iconCls:\"").Append(IconCls).Append("\"}");
            }
            return _json.ToString();
        }
    }
    private class MenuNode2
    {
        public string ID { get; set; }
        public string Text { get; set; }
        public string Pid { get; set; }
        public string Url { get; set; }
        public string Img { get; set; }
        public int isUsed { get; set; }
        public double Sort { get; set; }
        public int ilevel { get; set; }
        public string model { get; set; }
        public override string ToString()
        {
            StringBuilder _json = new StringBuilder();
            if (string.IsNullOrEmpty(Pid))
            {
                Pid = "0";
            }
            _json.Append("{ID:\"").Append(ID).Append("\",");
            _json.Append("functionName:\"").Append(Text).Append("\",");
            _json.Append("parentID:\"").Append(Pid).Append("\",");
            _json.Append("url:\"").Append(Url).Append("\",");
            _json.Append("isUsed:").Append(isUsed).Append(",");
            _json.Append("sort:").Append(Sort).Append(",");
            _json.Append("ilevel:").Append(ilevel).Append(",");
            _json.Append("model:\"").Append(model).Append("\",");
            _json.Append("img:\"").Append(Img).Append("\"}");
            return _json.ToString();
        }
    }
}

public class TreeAttr
{
    public TreeAttr(string id, string text, string pid)
    {
        this.ID = id;
        this.Text = text;
        this.Pid = pid;
    }
    public string ID { get; set; }
    public string Text { get; set; }
    public string Pid { get; set; }
}
public class MenuAttr
{
    public MenuAttr(string id, string text, string pid, string url, string iconcls, string shortcuts, string isBillPage, string programid)
    {
        this.ID = id;
        this.Text = text;
        this.Pid = pid;
        this.Url = url;
        this.IconCls = iconcls;
        this.Shortcuts = shortcuts;
        this.IsBillPage = isBillPage;
        this.ProgramID = programid;
    }
    public string ID { get; set; }
    public string Text { get; set; }
    public string Pid { get; set; }
    public string Url { get; set; }
    public string IconCls { get; set; }
    public string Shortcuts { get; set; }
    public string IsBillPage { get; set; }
    public string ProgramID { get; set; }
}

public class MenuAttr2
{
    private string _id;

    public string Id
    {
        get { return _id; }
        set { _id = value; }
    }
    private string _parentID;

    public string ParentID
    {
        get { return _parentID; }
        set { _parentID = value; }
    }
    private string _functionName;

    public string FunctionName
    {
        get { return _functionName; }
        set { _functionName = value; }
    }
    private string _url;

    public string Url
    {
        get { return _url; }
        set { _url = value; }
    }
    private string _img;

    public string Img
    {
        get { return _img; }
        set { _img = value; }
    }
    private string _isUsed;

    public string IsUsed
    {
        get { return _isUsed; }
        set { _isUsed = value; }
    }
    private string _sort;
    public string Sort
    {
        get { return _sort; }
        set { _sort = value; }
    }

    private string _ilevel;
    public string ilevel
    {
        get { return _ilevel; }
        set { _ilevel = value; }
    }

    private string _model;
    public string model
    {
        get { return _model; }
        set { _model = value; }
    }
}
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Reflection;
using System.Web;

namespace WebMvcOne
{

    /// <summary>
        /// DataTable与实体类互相转换
        /// </summary>
        /// <typeparam name="T">实体类</typeparam>
    public class ModelHandler<T> where T : new()
    {
        #region DataTable转换成实体类
        /// <summary>
        /// 填充对象列表:用DataSet的第一个表填充实体类
        /// </summary>
        /// <param name="ds">DataSet</param>
        /// <returns></returns>
        public List<T> FillModel(DataSet ds)
        {
            if (ds == null || ds.Tables[0] == null || ds.Tables[0].Rows.Count == 0)
            {
                return null;
            }
            else
            {
                return FillModel(ds.Tables[0]);
            }
        }
        /// <summary>  
        /// 填充对象列表:用DataSet的第index个表填充实体类
        /// </summary>  
        public List<T> FillModel(DataSet ds, int index)
        {
            if (ds == null || ds.Tables.Count <= index || ds.Tables[index].Rows.Count == 0)
            {
                return null;
            }
            else
            {
                return FillModel(ds.Tables[index]);
            }
        }
        /// <summary>  
        /// 填充对象列表:用DataTable填充实体类
        /// </summary>  
        public List<T> FillModel(DataTable dt)
        {
            if (dt == null || dt.Rows.Count == 0)
            {
                return null;
            }
            List<T> modelList = new List<T>();
            foreach (DataRow dr in dt.Rows)
            {
                //T model = (T)Activator.CreateInstance(typeof(T));  
                T model = new T();
                for (int i = 0; i < dr.Table.Columns.Count; i++)
                {
                    PropertyInfo propertyInfo = model.GetType().GetProperty(dr.Table.Columns[i].ColumnName);
                    if (propertyInfo != null && dr[i] != DBNull.Value)
                        propertyInfo.SetValue(model, dr[i], null);
                }

                modelList.Add(model);
            }
            return modelList;
        }
        /// <summary>  
        /// 填充对象:用DataRow填充实体类
        /// </summary>  
        public T FillModel(DataRow dr)
        {
            if (dr == null)
            {
                return default(T);
            }
            //T model = (T)Activator.CreateInstance(typeof(T));  
            T model = new T();
            for (int i = 0; i < dr.Table.Columns.Count; i++)
            {
                PropertyInfo propertyInfo = model.GetType().GetProperty(dr.Table.Columns[i].ColumnName);
                if (propertyInfo != null && dr[i] != DBNull.Value)
                    propertyInfo.SetValue(model, dr[i], null);
            }
            return model;
        }
        #endregion
        #region 实体类转换成DataTable
        /// <summary>
        /// 实体类转换成DataSet
        /// </summary>
        /// <param name="modelList">实体类列表</param>
        /// <returns></returns>
        public DataSet FillDataSet(List<T> modelList)
        {
            if (modelList == null || modelList.Count == 0)
            {
                return null;
            }
            else
            {
                DataSet ds = new DataSet();
                ds.Tables.Add(FillDataTable(modelList));
                return ds;
            }
        }
        /// <summary>
        /// 实体类转换成DataTable
        /// </summary>
        /// <param name="modelList">实体类列表</param>
        /// <returns></returns>
        public DataTable FillDataTable(List<T> modelList)
        {
            if (modelList == null || modelList.Count == 0)
            {
                return null;
            }
            DataTable dt = CreateData(modelList[0]);
            foreach (T model in modelList)
            {
                DataRow dataRow = dt.NewRow();
                foreach (PropertyInfo propertyInfo in typeof(T).GetProperties())
                {
                    dataRow[propertyInfo.Name] = propertyInfo.GetValue(model, null);
                }
                dt.Rows.Add(dataRow);
            }
            return dt;
        }
        /// <summary>
        /// 根据实体类得到表结构
        /// </summary>
        /// <param name="model">实体类</param>
        /// <returns></returns>
        private DataTable CreateData(T model)
        {
            DataTable dataTable = new DataTable(typeof(T).Name);
            foreach (PropertyInfo propertyInfo in typeof(T).GetProperties())
            {
                dataTable.Columns.Add(new DataColumn(propertyInfo.Name, propertyInfo.PropertyType));
            }
            return dataTable;
        }
        #endregion
    }
}

 

转载于:https://www.cnblogs.com/zhubenxi/articles/6715967.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值