Javascript Datatables分页控件不可见
在使用Angular时,我在Angular document.ready函数中进行了datatable初始化,如下所示:Javascript Datatables分页控件不可见,javascript,ajax,angular,datatables,Javascript,Ajax,Angular,Datatables,在使用Angular时,我在Angular document.ready函数中进行了datatable初始化,如下所示: angular.element(document).ready(function () { var table = $('#orders-table1').DataTable({ "order": [[0, "desc"]], "processing": true, "serverSide": true,
angular.element(document).ready(function () {
var table = $('#orders-table1').DataTable({
"order": [[0, "desc"]],
"processing": true,
"serverSide": true,
"paging": true,
"ajax": {
"url": "/Administration/GetOrders",
"type": "POST",
"datatype": "json",
"success": function (data) {
var datastring = JSON.stringify(data);
$.ajax({
type: 'POST',
url: '/Administration/GetOrderRowPartialView',
data: {
objekt: datastring
},
cache: false,
success: function (data) {
$("#orders-table1-body").html($compile(data)($scope)); //the data is the partial view containing many partial views
},
error: function (xhr, status, error) {
alert(xhr.responseText);
}
});
}
}
});
});
代码说明:
加载页面时,表初始化从serverSide属性设置为true开始。第一个ajax调用调用控制器操作并以json格式获取数据
考虑到表中的每一行都必须是部分视图(Razor、ASP.NET),我创建了一个部分视图(行集合),其中包含许多部分视图(行)
所以,这就是为什么我有另一个Ajax调用。从上一个视图接收数据并创建包含多个局部视图(行)的局部视图(行集合)并将其呈现在表体中的视图
一切正常,只是我看不到页码
这是服务器端代码,两个控制器操作:
[Authorize(Roles = "Administrator")]
[HttpPost]
public ActionResult GetOrders()
{
INarudzbeBL INarudzbeBL = BLFactory.KreirajInstancuNarudzba<INarudzbeBL>();
var draw = Request.Form.GetValues("draw").FirstOrDefault();
var start = Request.Form.GetValues("start").FirstOrDefault();
var length = Request.Form.GetValues("length").FirstOrDefault();
var sortColumn = Request.Form.GetValues("columns[" + Request.Form.GetValues("order[0][column]").FirstOrDefault() + "][name]").FirstOrDefault();
var sortColumnDir = Request.Form.GetValues("order[0][dir]").FirstOrDefault();
int pageSize = length != null ? Convert.ToInt32(length) : 0;
int skip = start != null ? Convert.ToInt32(start) : 0;
int totalRecords = 0;
var narudzbe = INarudzbeBL.DohvatiSveNarudzbe();
totalRecords = narudzbe.Count();
var data = narudzbe.Skip(skip).Take(pageSize).ToList();
NarudzbaToCustomNarudzbaMapper narudzbaToCustomNarudzbaMapper = new NarudzbaToCustomNarudzbaMapper();
List<TP1.CustomMappers.AdministrationOrders.NarudzbaCustomViewModel> narudzbaCustomViewModels = narudzbaToCustomNarudzbaMapper.MapNarudzbaToCustomNarudzba(data);
NarudzbaCustomViewModelHolder narudzbaCustomViewModelHolder = new NarudzbaCustomViewModelHolder();
narudzbaCustomViewModelHolder.NarudzbaCustomViewModels = narudzbaCustomViewModels;
return Json(narudzbaCustomViewModelHolder);
}
[Authorize(Roles = "Administrator")]
[HttpPost]
public ActionResult GetOrderRowPartialView(string objekt)
{
NarudzbaCustomViewModelHolder narudzbaCustomViewModelHolder = JsonConvert.DeserializeObject<NarudzbaCustomViewModelHolder>(objekt);
return PartialView("~/Views/Administration/Partial/Orders/OrdersTablePartialView.cshtml", narudzbaCustomViewModelHolder.NarudzbaCustomViewModels);
}
[授权(角色=“管理员”)]
[HttpPost]
公共操作结果GetOrders()
{
INarudzbeBL INarudzbeBL=BLFactory.KreirajInstancuNarudzba();
var draw=Request.Form.GetValues(“draw”).FirstOrDefault();
var start=Request.Form.GetValues(“start”).FirstOrDefault();
var length=Request.Form.GetValues(“length”).FirstOrDefault();
var sortColumn=Request.Form.GetValues(“columns[”+Request.Form.GetValues(“order[0][column]”)。FirstOrDefault()+“][name]”。FirstOrDefault();
var sortColumnDir=Request.Form.GetValues(“订单[0][dir]”)。FirstOrDefault();
int pageSize=length!=null?转换.ToInt32(长度):0;
int skip=start!=null?转换.ToInt32(start):0;
int totalRecords=0;
var narudzbe=INarudzbeBL.dohvativinarudzbe();
totalRecords=narudzbe.Count();
var data=narudzbe.Skip(Skip).Take(pageSize.ToList();
narudzbatoscustomnarudzbamapper narudzbatoscustomnarudzbamapper=新的narudzbatoscustomnarudzbamapper();
列出narudzbaCustomViewModels=narudzbatoscustomnarudzbamapper.mapnarudzbatoscustomnarudzba(数据);
NarudzbaCustomViewModelHolder NarudzbaCustomViewModelHolder=新的NarudzbaCustomViewModelHolder();
narudzbaCustomViewModelHolder.NarudzbaCustomViewModels=NarudzbaCustomViewModels;
返回Json(narudzbaCustomViewModelHolder);
}
[授权(角色=“管理员”)]
[HttpPost]
公共操作结果GetOrderRowPartialView(字符串对象)
{
NarudzbaCustomViewModelHolder NarudzbaCustomViewModelHolder=JsonConvert.DeserializeObject(objekt);
返回PartialView(“~/Views/Administration/Partial/Orders/OrdersTablePartialView.cshtml”,narudzbaCustomViewModelHolder.NarudzbaCustomViewModels);
}
第一个用于获取JSON格式的数据,第二个用于创建包含接收数据的部分视图,每个ajax调用一个
这就是表尾的外观:
[Authorize(Roles = "Administrator")]
[HttpPost]
public ActionResult GetOrders()
{
INarudzbeBL INarudzbeBL = BLFactory.KreirajInstancuNarudzba<INarudzbeBL>();
var draw = Request.Form.GetValues("draw").FirstOrDefault();
var start = Request.Form.GetValues("start").FirstOrDefault();
var length = Request.Form.GetValues("length").FirstOrDefault();
var sortColumn = Request.Form.GetValues("columns[" + Request.Form.GetValues("order[0][column]").FirstOrDefault() + "][name]").FirstOrDefault();
var sortColumnDir = Request.Form.GetValues("order[0][dir]").FirstOrDefault();
int pageSize = length != null ? Convert.ToInt32(length) : 0;
int skip = start != null ? Convert.ToInt32(start) : 0;
int totalRecords = 0;
var narudzbe = INarudzbeBL.DohvatiSveNarudzbe();
totalRecords = narudzbe.Count();
var data = narudzbe.Skip(skip).Take(pageSize).ToList();
NarudzbaToCustomNarudzbaMapper narudzbaToCustomNarudzbaMapper = new NarudzbaToCustomNarudzbaMapper();
List<TP1.CustomMappers.AdministrationOrders.NarudzbaCustomViewModel> narudzbaCustomViewModels = narudzbaToCustomNarudzbaMapper.MapNarudzbaToCustomNarudzba(data);
NarudzbaCustomViewModelHolder narudzbaCustomViewModelHolder = new NarudzbaCustomViewModelHolder();
narudzbaCustomViewModelHolder.NarudzbaCustomViewModels = narudzbaCustomViewModels;
return Json(narudzbaCustomViewModelHolder);
}
[Authorize(Roles = "Administrator")]
[HttpPost]
public ActionResult GetOrderRowPartialView(string objekt)
{
NarudzbaCustomViewModelHolder narudzbaCustomViewModelHolder = JsonConvert.DeserializeObject<NarudzbaCustomViewModelHolder>(objekt);
return PartialView("~/Views/Administration/Partial/Orders/OrdersTablePartialView.cshtml", narudzbaCustomViewModelHolder.NarudzbaCustomViewModels);
}
我已经包括了必要的脚本和样式文件
所以,问题是,为什么我看不到页码?我遗漏了什么?1)您不能在DataTables ajax中使用成功回调2)不清楚您在下一个ajax中要做什么3)尝试查看感谢您的回复。实际上,当我放置dataSrc回调而不是success时,所有的结果都是一样的,只是现在我得到了一个错误“无法读取未定义的属性长度”。第一个Ajax调用用于获取JSON格式的数据,然后我将其发送到控制器操作(通过第二个Ajax调用)。该函数创建局部视图,我将其呈现给datatable。表格行是部分视图形式,因为它们是完全定制的,如屏幕截图所示。另外,您可以看到第三列包含几个按钮,这些按钮会在单击时更新行,这就是我使用PVSee的原因