Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.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 服务器端数据表正在处理,但数据未显示_Javascript_C#_Jquery_Datatable - Fatal编程技术网

Javascript 服务器端数据表正在处理,但数据未显示

Javascript 服务器端数据表正在处理,但数据未显示,javascript,c#,jquery,datatable,Javascript,C#,Jquery,Datatable,目前正在尝试使用C#和MVC获取服务器端数据表。 我已经到了使用javascript中的ajax调用从服务返回数据的地步,但datatable仍在处理中 而且返回数据看起来也不错: Javascript: var accountTable = $("#accountTable").DataTable({ processing: true, serverSide: true, ajax: { url: '/Entity/AjaxGetJsonData?e

目前正在尝试使用C#和MVC获取服务器端数据表。 我已经到了使用javascript中的ajax调用从服务返回数据的地步,但datatable仍在处理中

而且返回数据看起来也不错:

Javascript:

var accountTable = $("#accountTable").DataTable({
    processing: true,
    serverSide: true,
    ajax: {
        url: '/Entity/AjaxGetJsonData?entityId=' + $("#AdviserId").val(),
        type: "GET",
        columns: [
            { "data": "Date", "orderable": true },
            { "data": "OtherEntity", "orderable": false },
            { "data": "Description", "orderable": false },
            {
                "sDefaultContent": "",
                "sClass": "dtAlignRight",
                "mRender": function (data, type, row) {
                    if (row.Amount.charAt(1) == '-') {
                        var negativeAmount = row.Amount.slice(2);
                        return "-$" + negativeAmount;
                    }
                    else {
                        return row.Amount;
                    }
                }
            }
        ],
        success: function (msg) {
            //do something here
        }
    }
});
C#返回数据:

[Authorize]
    public ActionResult AjaxGetJsonData(int entityId, int draw)
    {
        List<TransactionView> transactions = CommissionService.GetDefaultTransactions(entityId);
        List<DataItem> items = TransformToDataItem(transactions);
        string search = Request.QueryString["search[value]"];
        int sortColumn = -1;
        //string sortDirection = "asc";
        if (Request.QueryString["order[0][column]"] != null)
        {
            sortColumn = int.Parse(Request.QueryString["order[0][column]"]);
        }
        DataTableData table = new DataTableData();
        table.draw = draw;
        table.recordsTotal = items.Count;
        table.data = items;
        table.recordsFiltered = items.Count;

        return Json(table, JsonRequestBehavior.AllowGet);
    }
[授权]
公共操作结果AjaxGetJsonData(int entityId,int draw)
{
列表事务=CommissionService.GetDefaultTransactions(entityId);
列表项=TransformToDataItem(事务);
string search=Request.QueryString[“搜索[值]”];
int-sortColumn=-1;
//字符串sortDirection=“asc”;
if(Request.QueryString[“订单[0][列]”]!=null)
{
sortColumn=int.Parse(Request.QueryString[“order[0][column]”);
}
DataTableData table=新DataTableData();
table.draw=draw;
table.recordsTotal=items.Count;
表1.1数据=项目;
table.recordsFiltered=项目数;
返回Json(表,JsonRequestBehavior.AllowGet);
}
其他相关资料:

public List<DataItem> TransformToDataItem(List<TransactionView> transactions)
{
    List<DataItem> results = new List<DataItem>();
    foreach (TransactionView view in transactions)
    {
        DataItem item = new DataItem();
        item.Date = view.Date;
        item.OtherEntity = view.OtherEntity.Trim();
        item.Description = view.Description.Trim();
        item.Amount = view.Amount;
        results.Add(item);
    }
    return results;
}

public class DataItem
{
    public string Date { get; set; }
    public string OtherEntity {get; set;}
    public string Description { get; set; }
    public string Amount { get; set; }
}

public class DataTableData
{
    public int draw { get; set; }
    public int recordsTotal { get; set; }
    public int recordsFiltered { get; set; }
    public List<DataItem> data { get; set; }
}
公共列表TransformToDataItem(列表事务)
{
列表结果=新列表();
foreach(事务中的TransactionView)
{
DataItem=新的DataItem();
item.Date=view.Date;
item.OtherEntity=view.OtherEntity.Trim();
item.Description=view.Description.Trim();
item.Amount=view.Amount;
结果:增加(项目);
}
返回结果;
}
公共类数据项
{
公共字符串日期{get;set;}
公共字符串OtherEntity{get;set;}
公共字符串说明{get;set;}
公共字符串金额{get;set;}
}
公共类DataTableData
{
公共int draw{get;set;}
public int recordsTotal{get;set;}
公共int记录过滤{get;set;}
公共列表数据{get;set;}
}

是否有我缺少的东西导致datatable总是在处理,而从不使用数据填充该表?

应该是datatable的子项,而不是
ajax的子项。而且,
成功
可能是不必要的。请参见中的示例


我不认为
应该在
ajax
中,这是一个愚蠢的错误。谢谢daveYou可能会发现使用我的数据表包装库很有帮助:啊。完美的一个愚蠢幼稚的错误哈哈哈。哇,我永远都不会知道那件事,哈哈哈。这是漫长的一天。非常感谢大卫:)
var accountTable = $("#accountTable").DataTable({
    processing: true,
    serverSide: true,
    ajax: {
        url: '/Entity/AjaxGetJsonData?entityId=' + $("#AdviserId").val(),
        type: "GET"
    },
    columns: [
         { "data": "Date", "orderable": true },
         { "data": "OtherEntity", "orderable": false },
         { "data": "Description", "orderable": false },
         {
              "sDefaultContent": "",
              "sClass": "dtAlignRight",
              "mRender": function (data, type, row) {
                    if (row.Amount.charAt(1) == '-') {
                         var negativeAmount = row.Amount.slice(2);
                         return "-$" + negativeAmount;
                    }
                    else {
                         return row.Amount;
                    }
              }
         }
    ]

});