DataTables ajax erfordert einen expliziten json-Sammlungsnamen für die zurückgegebene Datenquelle?
ei der Implementierung der Ajax-Funktionalität von jquery DataTables ist kürzlich ein Problem aufgetreten. Bis ich meiner json-Objektsammlung einen expliziten Namen gegeben habe, konnte ich nichts zum Anzeigen bringen. Sollte es keine Standarddatenquelle geben, wenn kein Name zurückgegeben wird?
Client Side-Steuerungssetup (enthält ein ausgeblendetes Feld, das Daten für den dynamischen Anker liefert:
$('#accountRequestStatus').dataTable(
{
"destroy": true, // within a method that will be called multiple times with new/different data
"processing": true,
"ajax":
{
"type": "GET",
"url": "@Url.Action("SomeServerMethod", "SomeController")",
"data":, { methodParam1: 12341, methodParam2: 123423, requestType: 4123421 }
}
, "paging": false
, "columns": [
{ "data": "DataElement1" },
{ "data": "DataElement2", "title": "Col1" },
{ "data": "DataElement3", "title": "Col2" },
{ "data": "DataElement4", "title": "Col3" },
{ "data": "DataElement5", "title": "Col4" },
]
, "columnDefs": [
{
"targets": 0, // hiding first column, userId
"visible": false,
"searchable": false,
"sortable": false
},
{
"targets": 5, // creates action link using the hidden data for that row in column [userId]
"render": function (data, type, row) {
return "<a href='@Url.Action("ServerMethod", "Controller")?someParam=" + row["DataElement1"] + "'>Details</a>"
},
"searchable": false,
"sortable": false
}
]
});
Hier ist ein Ausschnitt meines serverseitigen Codes, der die json-Auflistung zurückgibt.
tableRows ist eine Sammlung von Modellen, die die anzuzeigenden Daten enthalten.
var json = this.Json(new { data = tableRows });
json.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
return json;
Wie ich bereits sagte, gab der Ajax-Aufruf Daten zurück, wurde aber erst angezeigt, nachdem ich der Sammlung einen Namen gegeben hatte. Vielleicht habe ich diesen erforderlichen Schritt in der Dokumentation verpasst, aber Wäre es nicht sinnvoll, wenn das Steuerelement eine Verbindung zu einer einzelnen zurückgegebenen Sammlung als Standarddatenquelle herstellt und den Namen @ nicht benötig? Herauszufinden, was mit dem Namen gemeint war, bedeutete mehr als zwei Stunden herumspielen, um verschiedene Dinge auszuprobieren. Das ist alles, was ich sage
Vielleicht hilft das auch jemand anderem ...