Heim >Backend-Entwicklung >C++ >Wie formatiere ich jqGrid-Dropdown-Antworten von ASP.NET MVC $.post-Aufrufen richtig?

Wie formatiere ich jqGrid-Dropdown-Antworten von ASP.NET MVC $.post-Aufrufen richtig?

Susan Sarandon
Susan SarandonOriginal
2025-01-11 09:07:411017Durchsuche

How to Properly Format jqGrid Dropdown Responses from ASP.NET MVC $.post Calls?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn