gpt4 book ai didi

JQuery Datatables服务器端处理表不刷新内容

转载 作者:行者123 更新时间:2023-12-01 04:13:38 24 4
gpt4 key购买 nike

当我第一次打开页面时,它显示的结果很好,但是当我使用过滤或排序列等时,ajax 方法成功返回正确的元素,并且 json 格式看起来正确,但网格不更新内容。我通过以下方式初始化数据表:

$('#myDataTable').dataTable({
"sAjaxSource": '@Url.Action("_Index")',
"bServerSide": true,
"aoColumns": [
{ "sName": "Konu" },
{ "sName": "Şikayet" },
{ "sName": "Kullanıcı Adı" },
{ "sName": "Müşteri Adı" },
{ "sName": "Müşteri Soyadı" },
{ "sName": "Şirket Adı" },
{ "sName": "Cevaplandı" },
{
"sName": "Cevap Ver",
"bSearchable": false,
"bSortable": false,
"fnRender": function (oObj) {
return '<a href='+'@Url.Action("Edit")' + '/' +
oObj.aData[7] + '>Cevap Ver</a>';
}
}
]
});

在服务器端:

public ActionResult _Index(jQueryDataTableParamModel table)
{
var feedbacksList = (List<FeedbackAjaxVM>)AppService.QueryInfo("Admin", "GetFeedbackAjaxList", table);

IEnumerable<string[]> feedbacks = from c in feedbacksList
select new string[] {
c.Subject,
c.Text,
c.Username,
c.CustomerName,
c.CustomerSurname,
c.CustomerFirmname,
c.Response,
c.Id.ToString()
};

return Json(new
{
sEcho = "1",
iTotalRecords = feedbacksList.FirstOrDefault() != null ? feedbacksList.FirstOrDefault().TotalRecords : 0,
iTotalDisplayRecords = table.iDisplayLength,
aaData = feedbacks
},JsonRequestBehavior.AllowGet);
}

我认为我的问题与客户端代码有关,但无法弄清楚。

最佳答案

sEcho 对于 Datatables 渲染数据至关重要。这些调用是异步的,因此 Datatables 需要知道请求的顺序,通过在每次服务器调用中递增 sEcho 变量来保留此顺序。

但是,您始终返回 1 作为 sEcho。根据 DatatablesEcho 1 的数据已全部渲染完毕,因此不会渲染您的数据。您应该从 jQueryDataTableParamModel 返回 sEcho 值。简单地,替换

sEcho = "1"  

sEcho = table.sEcho

关于JQuery Datatables服务器端处理表不刷新内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17235149/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com