„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum zeigt mein ASP.NET MVC JQGRID Dropdown einen "undefinierten" Wert?

Warum zeigt mein ASP.NET MVC JQGRID Dropdown einen "undefinierten" Wert?

Gepostet am 2025-03-23
Durchsuche:439

Why Does My ASP.NET MVC jqGrid Dropdown Show an

die "undefinierte" Wert in ASP.NET MVC JQGrid Dropdowns

Bei dynamischer Bevölkerung von JQGrid -Dropdowns während der Datenbearbeitung erscheint häufig ein unerwünschter "undefinierter" Wert. Dies ergibt sich aus Inkonsistenzen zwischen der Datenstruktur, die JQGrid -Erwartungen und die Datenliefernmethode.

korrekt JQGrid Datenformat:

Das ideale Format für den Wert des Dropdown -Werts lautet: Wert: "Fe: FedEx; in: intime; tn: tnt"

Problem mit der aktuellen Methode:

Der aktuelle Ansatz verwendet ASP.NET MVC mit JQuery's $. Ajax () , um Dropdown -Daten zu holen. A stringBuilder manipuliert die abgerufenen Daten, um das Format von JQGrid zu entsprechen, aber ein zusätzliches "undefinierter" Eintrag bleibt bestehen.

debuggen Erkenntnisse:

Firebug -Debugging zeigt an, dass zusätzliche Zitate von sb.toString () der Schuldige sind. JQGrid fügt seine eigenen Zitate hinzu und führt zu verdoppelten Zitaten und dem "undefinierten" Problem.

Eine überlegene Lösung: uw dataurl und buildselect

Anstatt die Eigenschaft value direkt zu manipulieren, beinhaltet eine robustere Lösung die Verwendung von jqGrid's dataurl und buildselect Eigenschaften in editOptions oder searchopions . Diese ermöglichen eine individuelle Daten abzuholen und formatieren.

Beispiel dataurl Aktion:

public JsonResult GetDestinationList() {
    List allDestinations = GetAllDestinations();
    return Json(allDestinations, JsonRequestBehavior.AllowGet);
}

example BuildSelect Funktion:

buildSelect: function(data) {
    var s = '';
    if (data && data.length) {
        for (var i = 0, l = data.length; i 

aktualisiert editOptions :

{
    name: 'destinations',
    editable: true,
    edittype: 'select',
    editoptions: {
        dataUrl: '/YourController/GetDestinationList', // Replace with your controller action path
        buildSelect: function(data) {
            // ... (buildSelect function from above) ...
        }
    }
}

Wichtige Hinweise:

  • Sie können JSON (Alldestinations); ohne jsonRequestBehavior.Allowget , aber Sie müssen ajaxSelectOptions: {Typ: "post"} zu Ihren JQGrid -Optionen hinzufügen.
  • In neueren JQGrid -Versionen wird
  • buildselect in die $. Ajax () Erfolgshandler, machen jQuery.parsejson (Data.responSetext) unnötig.
Dieser überarbeitete Ansatz bietet eine sauberere, effizientere und weniger fehleranfällige Methode für die Verwaltung von JQGrid-Dropdowns, wodurch das "undefinierte" Wertproblem beseitigt wird. Denken Sie daran,

/YourController/GetDestinationList durch den tatsächlichen Pfad zu Ihrer Controller -Aktion zu ersetzen.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3