Derzeit wird versucht, eine serverseitige Datentabelle mit C# und MVC zu erstellen. Ich habe zu dem Punkt, wo die Datenrückgabe aus dem Dienst ist, um den Ajax-Aufruf in Javascript verwenden, aber die Datentabelle Aufenthalt Verarbeitung ...Verarbeitung der serverseitigen Datentabelle, aber Daten werden nicht angezeigt
Und die Rückkehr Daten sehen auch gut aus:
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 Daten # Rückkehr:
[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);
}
Andere relevante Sachen:
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; }
}
Gibt es etwas, das ich vermisst, dass die Datentabelle immer verursacht Verarbeitung zu sein und füllt nie die Tabelle mit den Daten?
Ich glaube nicht, 'columns' soll innerhalb von' ajax' – David784
seine vereinbarten dummem mistake.Thanks dave –
Vielleicht finden Sie es hilfreich, meine Wrapper-Bibliothek für Datentabellen zu verwenden: http://aspdatatables.azurewebsites.net/ – mcintyre321