ASP.NET MVC- und jqGrid-Dropdown-Listen-Datenformatierung: Lösung des $.post-Aufrufproblems
In ASP.NET MVC können Sie die Dropdown-Liste „Daten bearbeiten“ von jqGrid dynamisch füllen. Es kann jedoch zu Problemen kommen, wenn in Dropdown-Listen „undefinierte“ Werte angezeigt werden. Dies kann durch die Datenformatierung von jqGrid verursacht werden.
Problemübersicht
Beim Ausführen eines $.post-Aufrufs mit jQuery können die vom Controller empfangenen Daten doppelte Anführungszeichen enthalten. Dies führt zu Problemen mit jqGrid, da erwartet wird, dass der Wert des Dropdown-Menüs im Format „Wert:Wert;...“ vorliegt.
Lösung: ContentResult verwenden
Um dieses Problem zu lösen, verwenden Sie die ContentResult-Methode anstelle von Json. Die Syntax von ContentResult lautet wie folgt:
<code class="language-csharp">return Content(sb.ToString());</code>
Alternative: dataUrl und buildSelect verwenden
Eine weitere Option besteht darin, die Attribute dataUrl und buildSelect in den Bearbeitungsoptionen oder Suchoptionen von jqGrid zu verwenden. Mit dataUrl stellen Sie eine URL bereit, die Daten in dem Format zurückgibt, das für das select-Element von jqGrid erforderlich ist. buildSelect ist eine benutzerdefinierte Funktion, die Daten empfängt und den HTML-Code des ausgewählten Elements zurückgibt.
Codebeispiel
Hier ist ein Beispiel für die Verwendung von dataUrl und buildSelect:
Controller-Operationen:
<code class="language-csharp">public JsonResult GetDestinationList() { List<string> allDestinations = GetAllDestinations(); return Json(allDestinations, JsonRequestBehavior.AllowGet); }</code>
jqGrid-Optionen:
<code class="language-javascript">{ name: 'destinations', editable: true, edittype:'select', editoptions: { dataUrl: '/YourController/GetDestinationList', buildSelect: function(data){ var s = '<select>'; if (data && data.length) { for (var i = 0, l=data.length; i<l ; i++) { var ri = data[i]; s += '<option value="' + ri + '">' + ri + '</option>'; } } s += '</select>'; return s; }} }</code>
Zusammenfassung
Sie können das richtige Datenformat für jqGrid-Dropdown-Werte aus $.post-Aufrufen in ASP.NET MVC bereitstellen, indem Sie die ContentResult-Methode oder die Eigenschaften dataUrl und buildSelect verwenden.
Das obige ist der detaillierte Inhalt vonWie formatiere ich jqGrid-Dropdown-Antworten von ASP.NET MVC $.post-Aufrufen richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!