jqgrid MVC 存储过程分页

来源:互联网 发布:apache php7配置 编辑:程序博客网 时间:2024/05/16 03:33

ALTER proc [dbo].[LogList]
@pageIndex int,
@pageSize int,
@strFilter varchar(1000)
as
begin
 exec('select top '+@pageSize+' *
 from (select distinct ROW_NUMBER() OVER(order by ID desc) as RowNumber,LogType,LogContent,LogTime \
 from Log
 where '+@strFilter+' 1=1 ) AS TEMPTABLE Where RowNumber>' + @pageIndex+'*'+@pageSize+'')
 exec('select count(*) from Log  Where '+@strFilter+' 1=1  ')
end

 

public ActionResult Log(String str)
        {
            int intCurPage;
            int intRowNum;
            string strWhere = "";
            intCurPage = GFun.SafeToInt32(Request["curpage"].ToString());
            if (Request["rownum"] != null)
                intRowNum = GFun.SafeToInt32(Request["rownum"].ToString());
            else
                intRowNum = 1;
            if (str.Contains('$'))
            {
                var strFilter = str.Split('$');
                str = " LogType like'%" + strFilter[0].ToString() + "%' and LogContent like'%" + strFilter[1].ToString() + "%' and ";
                if (strFilter[2].ToString() == "" || strFilter[2].ToString() == null)
                {
                    strWhere =str;
                }
                else
                {
                    strWhere =str+ "LogTime >='" + strFilter[2].ToString() + " 00:00:00' and LogTime<='" + strFilter[3].ToString() + " 23:59:59' and ";
                }
            }
            UIDataTable udtTask = LogBL.LogData(strWhere, intCurPage - 1, GFun.SafeToInt32(intRowNum));
            string strjson = GFun.Dt2Json("task", udtTask.DtData);
            strjson = strjson.Substring(1);
            strjson = strjson.Substring(0, strjson.Length - 1);
            string jsonData = "{ \"page\":" + GFun.SafeToInt32(Request["curpage"]) + ", \"total\": " + udtTask.IntTotalPages + ", \"records\": " + udtTask.IntRecords + ", \"rows\": ";
            jsonData += strjson + "}";
            return Json(jsonData, JsonRequestBehavior.AllowGet);
        }

 

 public static UIDataTable LogData(String strFilter, int a_intPageIndex, int a_intPageSize)
       {
           return LogDA.LogData(strFilter,a_intPageIndex,a_intPageSize);
       }

 

public static UIDataTable LogData(String strFilter, int a_intPageIndex, int a_intPageSize)
       {
           UIDataTable instData = new UIDataTable();

           SqlParameter[] sqlpar = new SqlParameter[]{
                new SqlParameter("@strFilter",strFilter),
                new SqlParameter("@pageIndex",a_intPageIndex),
                new SqlParameter("@pageSize",a_intPageSize)
            };

           DataSet dsTask = SQLBase.FillDataSet("LogList", CommandType.StoredProcedure, sqlpar, DataSourceCnn.EPMSCnn);
           if (dsTask == null)
           {
               instData.DtData = null;
               instData.IntRecords = 0;
               instData.IntTotalPages = 0;
               return instData;
           }
           DataTable dt = dsTask.Tables[0];
           instData.IntRecords = GFun.SafeToInt32(dsTask.Tables[1].Rows[0][0]);
           instData.DtData = dsTask.Tables[0];
           if (instData.IntRecords > 0)
           {
               if (instData.IntRecords % a_intPageSize == 0)

                   instData.IntTotalPages = instData.IntRecords / a_intPageSize;

               else
                   instData.IntTotalPages = instData.IntRecords / a_intPageSize + 1;
           }
           else
               instData.IntTotalPages = 0;
           instData.DtData = dt;
           return instData;
       }

 

 public class UIDataTable
    {
        public UIDataTable();

        public DataTable DtData { get; set; }
        public int IntRecords { get; set; }
        public int IntTotalPages { get; set; }
    }

 

JS

function LogLoad() {
    jQuery("#Loglist").jqGrid({
        url: "Log?curpage=" + curPage + "&rownum=" + OnePageCount + '&str=' + str,
        datatype: 'json',
        data: {},
        loadonce: false,
        mtype: 'GET',
        jsonReader: {
            root: function (obj) {
                var data = eval("(" + obj + ")");
                return data.rows;
            },
            page: function (obj) {
                var data = eval("(" + obj + ")");
                return data.page;
            },
            total: function (obj) {
                var data = eval("(" + obj + ")");
                return data.total;
            },
            records: function (obj) {
                var data = eval("(" + obj + ")");
                return data.records;
            },
            repeatitems: false
        },
        colNames: ['序号', '日志类型', '日志内容', '日志时间'],
        colModel: [
            { name: 'RowNumber', index: 'RowNumber', width: 35, align: 'center' },
            { name: 'LogType', index: 'LogType',width:150, align: 'center' },
            { name: 'LogContent', index: 'LogContent',width:392, align: 'center' },
            { name: 'LogTime', index: 'LogTime',width:120, align: 'center' }
        ],
        pager: jQuery('#Logpager'),
        pgbuttons: true,
        rowNum: OnePageCount,
        viewrecords: true,
        imgpath: 'themes/basic/images',
        caption: '操作日志',

        onPaging: function (EpgButton) {
            if (EpgButton == "next_Logpager")
                if (curPage == $("#Loglist").getGridParam("lastpage"))
                    return;
                else
                    curPage = $("#Loglist").getGridParam("page") + 1;
                else if (EpgButton == "last_Logpager") {
                    curPage = $("#Loglist").getGridParam("lastpage");
            }
                else if (EpgButton == "prev_Logpager") {
                if (curPage == 1)
                    return;
                curPage = $("#Loglist").getGridParam("page") - 1;
            }
            else if (EpgButton == "first_Logpager") {
                curPage = 1;
            }
            else {
                curPage = $("#Logpager :input").val();
            }
            reload();
        },
        loadComplete: function () {
            $("#Loglist").jqGrid("setGridHeight",268, false);
            $("#Loglist").jqGrid("setGridWidth", 700, false);
        }
    });
}
function reload() {
    $("#Loglist").jqGrid('setGridParam', {
        url: "controller?curpage=" + curPage + "&rownum=" + OnePageCount + "&str=" + str,
        datatype: 'json'
    }).trigger("reloadGrid");
}

 

html
<div id="Log" class="divList" style="width: 100%; height:100%;">
         <table id="Loglist" class="scroll" style="width: 100%; height: 100%;"></table>
        <div id="Logpager" class="scroll" style="text-align: center; width: 100%;"></div>
    </div>

 

CSS
 .ui-jqgrid .ui-jqgrid-title{font-size:14px;font-family:"宋体";}  /*修改grid标题的字体大小*/ 
       
        .ui-jqgrid-sortable {font-size:13px;font-family:"宋体";}   /*修改列名的字体大小*/ 
       
        .ui-jqgrid tr.jqgrow td {font-size:12px; font-family:"宋体"} /*修改表格内容字体*/

0 0
原创粉丝点击