Javascript 在jquery数据库中显示项的到错误
我在计算当前数据表中显示的行时遇到问题。 第一个问题是 2秒是。似乎datatable计算列的高度有误,或者类似的情况 我使用的是dataTables.scroller.js 1.4.2和jquery.dataTables.js 1.10.11 datatable的设置: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
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上复制它。样式不是问题所在,因为我已经尝试删除与这些行相关的所有样式,但没有任何帮助。最后,我找到了问题的原因,正如您所说的,这就是样式。如果我删除所有样式-它将正确计数。那么,有没有可能在没有这个问题的情况下为数据表创建自定义样式呢?