Wie können Sie die Bearbeitung bestimmter Spalten im Popup-Editor deaktivieren?

9

ASP.Net MVC 3, Kendo Benutzeroberfläche Web, Kendo Grid-Steuerelement.

Ich habe mehrere Felder als schreibgeschützt konfiguriert:

%Vor%

und es funktioniert wie erwartet im Inline-Modus. Aber wenn ich den Modus auf Popup umstelle, zeigt der Editor die gesamte Struktur an, so dass ich jedes beliebige Feld bearbeiten kann (das auch als nicht editierbar markiert ist).

Also, wie man sie markiert, so dass der Popup-Editor nur diejenigen anzeigen würde, die für Änderungen markiert sind?

    
greenoldman 28.10.2012, 19:48
quelle

3 Antworten

6

Der Popup-Editor verwendet die MVC-Editor-Vorlage, die völlig unabhängig von Kendo ist. Wenn Sie dieses Feld nur als schreibgeschützt kennzeichnen möchten, müssen Sie ein Metadatenattribut im Modell im Code anhängen. Ex:

%Vor%

Aktualisierung:

Entschuldigen Sie, die Antwort war ursprünglich unvollständig. Sie müssen eine eigene Vorlage erstellen, um dies zu handhaben, da eingebaute Einsen dies nicht unterstützen (ich hatte dies in meinem Projekt und habe es vergessen). Erstellen Sie dazu eine Ansicht unter /Views/Shared/EditorTemplates/string.cshtml (ich werde dies in Razor zeigen, es ist jedoch einfach, die ASPX-Syntax zu portieren).

Der Code würde wie folgt aussehen:

%Vor%

Dies wird das bearbeitbare Metadatenattribut korrekt verarbeiten. Natürlich ist das nur für String, Sie sollten etwas ähnliches für andere Objekte tun. Wenn Sie suchen, wie andere Build-Vorlagen aussehen, überprüfen Sie diese Website: Ссылка

Leistung Hinweis: Wenn Sie dies nur an einer Stelle an wenigen Stellen in der Anwendung tun, ist es wahrscheinlich besser, sie stattdessen unter / Views / YourView / EditorTemplates / zu platzieren. Der Grund dafür ist, dass die eingebauten Vorlagen in das Framework kompiliert werden und im Allgemeinen schneller funktionieren. Alternativ lassen Sie es im freigegebenen Ordner, aber nennen Sie es etwas wie ExtendedString, und dann in Tag-Eigenschaften, die Sie Editable mit expliziten UI-Hinweis wie folgt festlegen:

%Vor%     
macsux 29.10.2012, 00:52
quelle
4

Laut KendoUI-Dokumentation ( Ссылка ) sollten Sie die Property mit [HiddenInput(DisplayValue = false)]

Beispiel:

%Vor%

Getestet und funktioniert.

    
Nikolay Kostov 27.12.2014 18:28
quelle
3

Eine ähnliche, einfachere aber weniger allgemeine Lösung ist die Verwendung einer benutzerdefinierten Editor-Vorlage:

%Vor%

Dann fügen Sie "Empty.cshtml" in Ihre Views / Shared / EditorTemplates mit nichts ein.

    
Curtis Yallop 27.12.2012 21:01
quelle

Tags und Links