Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 5 如果数据计数超过10K,免费jQgrid将抛出SystemOutofMemoryException_Asp.net Mvc 5_Free Jqgrid - Fatal编程技术网

Asp.net mvc 5 如果数据计数超过10K,免费jQgrid将抛出SystemOutofMemoryException

Asp.net mvc 5 如果数据计数超过10K,免费jQgrid将抛出SystemOutofMemoryException,asp.net-mvc-5,free-jqgrid,Asp.net Mvc 5,Free Jqgrid,最近,我开始在免费jQgrid中遇到一个与“SystemOutOfMemoryException”相关的问题。我使用的版本是4.15.4,带有MVC5和Sql Server DB查询,用于提供数据。我发现的原因是数据的增长。如果数据在10K左右,且LoadOnce:true处于该点,则它可以正常工作。但当更多的数据到来时,它开始抛出这个问题。 我将一次性从数据库中获取所有数据,并将其加载到网格中 以下是一些控制器代码: public JsonResult GetDataWRTLa

最近,我开始在免费jQgrid中遇到一个与“SystemOutOfMemoryException”相关的问题。我使用的版本是4.15.4,带有MVC5和Sql Server DB查询,用于提供数据。我发现的原因是数据的增长。如果数据在10K左右,且
LoadOnce:true
处于该点,则它可以正常工作。但当更多的数据到来时,它开始抛出这个问题。 我将一次性从数据库中获取所有数据,并将其加载到网格中

以下是一些控制器代码:

        public JsonResult GetDataWRTLanguage(string searchKey)
        {

            FormBL formsbl = new FormBL();
            List<Form_Check> lstPPVM = new List<Form_Check>();
            filter f = new filter();
            string returnedLangCode = "";

            if (searchKey != "")
            {
                TempData["LanguageCode"] = searchKey;
            }

            if (Convert.ToString(TempData["LanguageCode"]) != "")
            {
                returnedLangCode = Convert.ToString(TempData["LanguageCode"]);
                TempData.Keep("LanguageCode");
            }
            else{
                returnedLangCode = searchKey;                
            }


            lstPPVM = formsbl.getDataWithLanguage(returnedLangCode);
            //var newList = JsonConvert.SerializeObject(lstPPVM);
            int page = 1, rows = 1;
            int pageIndex = Convert.ToInt32(page) - 1;
            int pageSize = rows;
            int totalRecords = lstPPVM.Count();
            var totalPages = (int)Math.Ceiling((float)totalRecords / (float)rows);
            var Results = lstPPVM.AsQueryable();
            var jsonData = new
            {
                total = totalPages,
                page = page,
                records = totalRecords,
                rows = Results
            };
            var jsonResult = Json(jsonData, JsonRequestBehavior.AllowGet);
            jsonResult.MaxJsonLength = int.MaxValue;
            return jsonResult;
        }
公共JsonResult GetDataWRTLanguage(字符串搜索键) { FormBL formsbl=新FormBL(); List lstpvm=新列表(); 过滤器f=新过滤器(); 返回的字符串langcode=“”; 如果(搜索键!=“”) { TempData[“LanguageCode”]=搜索键; } if(Convert.ToString(TempData[“LanguageCode”])!=“”) { returnedLangCode=Convert.ToString(TempData[“LanguageCode]”); TempData.Keep(“语言代码”); } 否则{ returnedLangCode=搜索键; } lstpvm=formsbl.getDataWithLanguage(返回的LangCode); //var newList=JsonConvert.SerializeObject(lstpvm); int page=1,rows=1; int pageIndex=Convert.ToInt32(第页)-1; int pageSize=行; int totalRecords=lstPPVM.Count(); var totalPages=(int)数学上限((float)totalRecords/(float)行); var Results=lstpvm.AsQueryable(); var jsonData=new { 总计=总页数, 第页, 记录=总记录, 行=结果 }; var jsonResult=Json(jsonData,JsonRequestBehavior.AllowGet); jsonResult.MaxJsonLength=int.MaxValue; 返回jsonResult; } 以下是jqgrid代码

    $("#grid").jqGrid({
            url: '/MView/GetDataWRTLanguage?searchKey=' + LanguageId + "",
            mtype: "GET",
            datatype: "json",
            colNames: [*more than 15*]
            colModel: [*body of all columns with search*]
            loadComplete: function () {                
                if ($('#grid').getGridParam('records') === 0) {
                    oldGrid = $('#GridIdb2 tbody').html();
                    $(".jqgfirstrow").css("height", "1px");                   
                }
                else {
                    oldGrid = "";
                }
                this.p.lastSelected = lastSelected; 
                var obj = JSON.parse(sessionStorage.getItem('majorgridInfo'));
                if (obj != undefined || obj != undefined || obj != null || obj != null) {
                    jQuery("#grid").setGridParam({ rowNum: obj.rowNum.toString() });
                    var grid = $("#grid");
                    jQuery("#grid").setGridParam({ rowNum: obj.rowNum }).trigger("reloadGrid");
                    $('.ui-pg-selbox').val(obj.rowNum);
                }
            },
            onPaging: function (pgbtn) {
                Selected_RowList = $('.ui-pg-selbox').val();
                saveGridParameters();
            },
            forceClientSorting: true,
            cmTemplate: { autoResizable: true },
            width: '100%',
            scrollbar: true,
            autoResizing: { compact: true },
            editurl: "/MajorsView/EditParticipantRecords/",
            pager: jQuery('#pager'),
            loadonce: true,
            viewrecords: true,
            gridview: true,
            height: '480px',
            //width: '100%',
            //maxHeight: 980,
            //pager: '#pager',
            rowNum: 25,     //// adjust height of Jqgrid
            rowList: [25, 100, 200, 500, 1000,10000],       ////adjust height of Jqgrid
            ignoreCase: true,
            autowidth: true,
            shrinkToFit: false,
            hidegrid: true, //To disable collapsing
            iconSet: "fontAwesome",
            caption: "<i class='fa fa-users'></i> Participant List",
            multiSort: true,
            sortname: 'ReferenceId',
            sortOrder: 'asc',
            rowattr: function (rd) {
                if (rd.Check === "true") { 
                    return { "class": "state_inactive" };
                }
            },

            multiselect: false,
            emptyrecords: "No records to display",
            jsonReader:
            {
                root: "rows",
                page: "page",
                total: "total",
                records: "records",
                repeatitems: false,
                Id: "ReferenceId"
            },
            inlineEditing: { keys: true, defaultFocusField: "ReferenceId", focusField: "ReferenceId" },
          });
$(“#网格”).jqGrid({
url:“/MView/GetDataWRTLanguage?searchKey=”+LanguageId+“”,
mtype:“获取”,
数据类型:“json”,
colNames:[*超过15*]
colModel:[*所有列的正文,带搜索*]
loadComplete:函数(){
if($('#grid').getGridParam('records')==0){
oldGrid=$('#GridIdb2 tbody').html();
$(“.jqgfirstrow”).css(“高度”,“1px”);
}
否则{
oldGrid=“”;
}
this.p.lastSelected=lastSelected;
var obj=JSON.parse(sessionStorage.getItem('majorgridInfo');
如果(obj!=未定义的| | obj!=未定义的| | obj!=null | | obj!=null){
setGridParam({rowNum:obj.rowNum.toString()});
风险值网格=$(“#网格”);
jQuery(“#grid”).setGridParam({rowNum:obj.rowNum}).trigger(“reloadGrid”);
$('.ui pg selbox').val(obj.rowNum);
}
},
onPaging:函数(pgbtn){
选定的_RowList=$('.ui pg selbox').val();
saveGridParameters();
},
forceClientSorting:对,
cmTemplate:{自动调整大小:true},
宽度:“100%”,
滚动条:对,
自动调整大小:{compact:true},
editurl:“/MajorView/EditParticipantRecords/”,
pager:jQuery(“#pager”),
有一次:是的,
viewrecords:是的,
gridview:没错,
高度:'480px',
//宽度:“100%”,
//最大高度:980,
//寻呼机:“#寻呼机”,
rowNum:25,///调整Jqgrid的高度
行列表:[25100200500100010000],///调整Jqgrid的高度
ignoreCase:是的,
自动宽度:正确,
shrinkToFit:错,
hidegrid:true,//禁用折叠
iconSet:“真棒”,
标题:“参与者名单”,
多端口:对,
sortname:'ReferenceId',
排序器:“asc”,
rowattr:函数(rd){
如果(rd.Check==“true”){
返回{“类”:“state_inactive”};
}
},
多选:错,
emptyrecords:“没有要显示的记录”,
jsonReader:
{
根:“行”,
第页:“第页”,
总计:“总计”,
记录:“记录”,
重复项:false,
Id:“引用Id”
},
inlineEditing:{keys:true,defaultFocusField:“ReferenceId”,focusField:“ReferenceId”},
});
在这里,我还使用了JsonMaxLength属性,但它仍然抛出错误。 我已经看到它仍然可以正常工作,但对我来说,它在超过10K的数据上开始出现错误

附加问题:我应该使用服务器端jqgrid实现吗?如果是,那么如何修改到MVC和jqgrid的更新版本


任何帮助都将不胜感激

在jqGrid中有很多关于服务器端分页的帖子。你也可以在网上搜索。举个例子,您好,感谢Tony花时间提供您的意见。很高兴见到你。是的,我在网上搜索过同样的例子,最后得到了jqueryjqgrid或jquerygrid相关的例子。我认为这与免费jqgrid不匹配。虽然我读了Oleg关于免费jqgrid中服务器端分页的文章,但现在已经有点过时了。所以,我想在这里问一下。另一件事,我想知道为什么错误会抛出免费jQgrid。