Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.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
Javascript 在jquery数据库中显示项的到错误_Javascript_C#_Jquery_Datatables - Fatal编程技术网

Javascript 在jquery数据库中显示项的到错误

Javascript 在jquery数据库中显示项的到错误,javascript,c#,jquery,datatables,Javascript,C#,Jquery,Datatables,我在计算当前数据表中显示的行时遇到问题。 第一个问题是 2秒是。似乎datatable计算列的高度有误,或者类似的情况 我使用的是dataTables.scroller.js 1.4.2和jquery.dataTables.js 1.10.11 datatable的设置: function setupSearch() { oJobAdSearchTable = $('#jobAdSearchTable').DataTable({ serverSide: true, process

我在计算当前数据表中显示的行时遇到问题。 第一个问题是 2秒是。似乎datatable计算列的高度有误,或者类似的情况

我使用的是dataTables.scroller.js 1.4.2和jquery.dataTables.js 1.10.11

datatable的设置:

function setupSearch() {
oJobAdSearchTable = $('#jobAdSearchTable').DataTable({
    serverSide: true,
    processing: true,
    searching: false,
    "footerCallback": function (row, data, start, end, display) {
    },
    "fnInitComplete": function (oSettings, json) {
    },
    fnDrawCallback: function () {
        var blabla = 0;
    },
    scrollInfinite: true,
    scrollX: true,
    scrollY: 550,
    scroller: {
        loadingIndicator: true
    },
    fnServerParams: function (aoData) {
        aoData["companyNameId"] = $("#inputCompanyNameId").val();
        aoData["jobAdHeadingId"] = $("#inputJobAdHeadingId").val();
        aoData["jobAdId"] = $("#inputJobAdId").val();
        aoData["fromDate"] = moment($("#datepickerSearchFromDate").datepicker("getDate")).format("DD/MM/YYYY");
        aoData["toDate"] = moment($("#datepickerSearchToDate").datepicker("getDate")).format("DD/MM/YYYY");
        aoData["partnerId"] = $("#valPartnerId").val();
        aoData["sessionId"] = $("#valSessionId").val();
        aoData["numJobAds"] = $("#valNumJobAds").val();
        aoData["lang"] = currentLanguage;
    },
    ajax: {
        url: '/api/searchjobadinfinite/get'
    }
});
};
此发送请求到C方法抱歉,代码太多,我不确定什么会对问题产生影响:

public dynamic Get()
    {
        DataTablePager<JobTitleModel> res = new DataTablePager<JobTitleModel>();

        try
        {
            DateTime beginTime = DateTime.Now.ToLocalTime();

            NameValueCollection nvc = HttpUtility.ParseQueryString(Request.RequestUri.Query);

            DOAReports.Args.SearchJobAdsArgs searchArgs = new DOAReports.Args.SearchJobAdsArgs(nvc);
            if (provider == null)
                provider = new ClickMapProvider();

            // Due to performance we use a low number
            searchArgs.TopNum = 250;

            DateTime beginSql = DateTime.Now.ToLocalTime();
            List<JobTitleModel> searchList;
            if (searchArgs.JobAdID != "")
                searchList = provider.SearchJobAdIdInfinite(searchArgs);
            else
                searchList = provider.SearchJobAdsInfinite(searchArgs);

            DateTime endSql = DateTime.Now.ToLocalTime();

            int totalNum = 0;
            if (CacheSessionProvider.Contains(KEY_SESSION_JOBAD_SEARH_NUM_TOTAL))
            {
                totalNum = Convert.ToInt32(CacheSessionProvider.Get(KEY_SESSION_JOBAD_SEARH_NUM_TOTAL));
            }
            else
            {
                totalNum = provider.NumJobAds(searchArgs);
                CacheSessionProvider.Add(KEY_SESSION_JOBAD_SEARH_NUM_TOTAL, totalNum);
            }

            int totalNumFiltered = totalNum;
            if (totalNumFiltered > searchArgs.TopNum)
                totalNumFiltered = searchArgs.TopNum;
            DateTime beginSerialize = DateTime.Now.ToLocalTime();

            var result = from sl in searchList
                         select new[] { sl.CompanyName, sl.Title, Convert.ToString(sl.JobAdId), sl.ProductPackage, sl.DateCreated.ToShortDateString(), sl.DateExpired.ToShortDateString(), Convert.ToString(sl.NumAppearances), Convert.ToString(sl.NumViews), Convert.ToString(sl.NumActions), Convert.ToString(sl.NumInterested) + " (" + Convert.ToString(sl.NumApplications) + ")", Convert.ToString(sl.JobAdId) + "," + Convert.ToString(sl.PrevJobAdId) + "," + Convert.ToString(sl.NextJobAdId) };

            DateTime endSerialize = DateTime.Now.ToLocalTime();

            DateTime endTime = DateTime.Now.ToLocalTime();
            System.Diagnostics.Debug.WriteLine("From: " + searchArgs.FromRow + ", TO: " + searchArgs.ToRow + ", Elapsed: " + (endTime - beginTime).ToString() + ", Sql: " + (endSql - beginSql).ToString() + ", Serialize: " + (endSerialize - beginSerialize).ToString());

            DOAReports.Model.JobAdSearchTotal totals = provider.GetSearchJobAdInfiniteTotal(searchArgs);

            return new
            {
                draw = searchArgs.draw,
                recordsTotal = totalNum,
                recordsFiltered = totalNumFiltered,
                dataTotals = totals,
                data = result
            };
        }
        catch (Exception ex)
        {
            Logger.LogError(ex);
        }

        return res;
    }

这个错误的原因是什么,你能帮我吗?我已经花了几天时间试图找出原因。非常感谢

您的桌子最初是隐藏的吗?如果是,您可能需要调用以重新计算滚动条使用的测量值。它不是隐藏的。我尝试了$'jobAdSearchTable'.DataTable.scroller.measure,但id没有帮助:行的高度大于默认的DataTables样式,我认为出于某种原因,scroller无法计算正确的行高度,并且认为屏幕上显示的行比实际显示的行多。我会先删除你的自定义样式,看看这是否能解决问题。也许您可以在上复制一个问题?我将尝试在JSFIDLE上复制它。样式不是问题所在,因为我已经尝试删除与这些行相关的所有样式,但没有任何帮助。最后,我找到了问题的原因,正如您所说的,这就是样式。如果我删除所有样式-它将正确计数。那么,有没有可能在没有这个问题的情况下为数据表创建自定义样式呢?