如何在MVC DOT NET中进行分页?

问题描述 投票:0回答:1

[我有一个模块可以显示所有后台记录,但问题是记录太像它在屏幕上显示22k记录,并且屏幕变慢,所有组件工作缓慢,因此我必须在MVC中进行分页。]

Controller

    public string TrafficMovement(string formData)
    {
        try
        {
            formData = HttpUtility.HtmlDecode(formData);
            ReportsAC _obj = new ReportsAC();
            DataSet dataset = new DataSet();
            ReportsMapper mapper = JsonConvert.DeserializeObject<ReportsMapper>(formData);
            UserSession userSession = (UserSession)Session["userSession"];

            mapper.Company_Id = userSession.Company_Id;

            dataset = _obj.TrafficMovementAC(mapper);


            return "{\"Status\":true , \"Message\":\"success\" ,\"Data\": " + JsonConvert.SerializeObject(dataset) + "}";
        }
        catch (Exception ex)
        {

            return "{\"Status\":false , \"Message\":\"" + ex.Message.ToString() + "\"}";
        }
    }

jQuery

function Traffic_Movement(){

try {

    var url = "/Reports/TrafficMovement";
    var dataString = {};
    ShowLoader();
    //dataString.Report_Period = $("#Report_Period").val();

    dataString.tfMonth = $("#tffMonth").val();
    dataString.tfYear = $("#tffYear").val();

    AjaxSubmission(dataString, url, $('input[name=__RequestVerificationToken]').val()).done(function (data) {

        if (data.Message == "success") {

            var strHTML = '';
            var strVAL = '';



            if (("#tfbdy") != undefined) {
                $('#count_data').html("TOTAL RECORDS: " + data.Data.Table.length);
               // $("#trBody").html("<tr><td colspan='15'></td></tr>");

            }

            if (data.Data.Table != undefined && data.Data.Table.length > 0) {


                for (var i = 0; i < data.Data.Table.length; i++) {


                   //here i m doing binding work
                }

                $("#tfbdy").html(strHTML);

      }


                 }



                       HideLoader();


 }).fail(function (result) {
        //console.log(result.Message);
        HideLoader();
    });

} catch (e) {
    console.log(e.message);
    HideLoader();
}

    }

Component

public DataSet TrafficMovementAC(ReportsMapper mapper)
    {
        try
        {
            SqlParameter[] sqlParameter = new SqlParameter[6];
            sqlParameter[0] = new SqlParameter("@Company_Id", mapper.Company_Id);
            sqlParameter[1] = new SqlParameter("@Branch_Id", mapper.Branch_Id);
            sqlParameter[2] = new SqlParameter("@User_Id", mapper.User_Id);
            sqlParameter[3] = new SqlParameter("@FY_ID", mapper.FY_Id);
            //sqlParameter[4] = new SqlParameter("@Report_Period", mapper.Report_Period );
            sqlParameter[4] = new SqlParameter("@tfMonth", mapper.tfMonth);
            sqlParameter[5] = new SqlParameter("@tfYear", mapper.tfYear);


            dataAccess.ExecuteSelectQueryWithDataSet("SKYBOOKS_TRAFFIC_MOVEMENT_LIST", sqlParameter, out dataSet);
            return dataSet;
        }

        catch
        {
            throw;
        }



    }

[如果有人向我建议分页的想法,那将意味着很多,在此先谢谢您。

[我有一个模块可以显示所有记录,但问题是记录太像它在屏幕上显示22k记录,并且屏幕变慢,所有组件工作缓慢,所以我必须这样做...

asp.net asp.net-mvc asp.net-mvc-4 asp.net-mvc-3 dot
1个回答
0
投票
将pageNo和pageSize参数添加到您的控制器方法。如果不希望更改,请缓存最初获取的全部数据。然后在每个请求中,增加thr pageNo并仅返回相应的页面。

伪代码

© www.soinside.com 2019 - 2024. All rights reserved.