Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.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 Datatables分页控件不可见_Javascript_Ajax_Angular_Datatables - Fatal编程技术网

Javascript Datatables分页控件不可见

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时,我在Angular document.ready函数中进行了datatable初始化,如下所示:

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的原因