Der Popup-Editor verwendet das MVC-Editor-Template, das völlig unabhängig von dem von Kendo ist. Wenn Sie dieses Feld als schreibgeschützt kennzeichnen möchten, müssen Sie ein Metadaten-Attribut im Modell im Code anhängen. Beispiel:
public class MyClassUsedInGrid
{
[System.ComponentModel.DataAnnotations.Editable(false)]
public string foobar {get;set;}
}
Aktualisierung:
Bitte entschuldigen Sie, die Antwort war ursprünglich unvollständig. Sie müssen eine benutzerdefinierte Vorlage erstellen, um dies zu handhaben, da die eingebauten Vorlagen dies nicht unterstützen (ich hatte dies in meinem Projekt und vergaß es). Um dies zu tun, erstellen Sie eine Ansicht unter /Views/Shared/EditorTemplates/string.cshtml (Ich werde dies in Razor zeigen, es ist einfach zu aspx Syntax zu portieren, aber).
Der Code würde wie folgt aussehen:
@model string
@if(ViewData.ModelMetadata.IsReadOnly){
@Html.DisplayForModel()
}else{
@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, new { @class = "text-box single-line" })
}
Dadurch wird das Metadatenattribut "Bearbeitbar" korrekt verarbeitet. Natürlich ist dies nur für String, sollten Sie etwas ähnliches für andere Objekte zu tun. Wenn Sie wissen möchten, wie andere Build-in-Vorlagen aussehen, besuchen Sie diese Website: http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-3-default-templates.html
Nebenbemerkung zur Leistung: Wenn Sie dies nur an einer Stelle in wenigen Stellen in der Anwendung tun, ist es wahrscheinlich besser, es stattdessen unter /Views/YourView/EditorTemplates/ zu platzieren. Der Grund dafür ist, dass die eingebauten Vorlagen in das Framework kompiliert sind und im Allgemeinen schneller funktionieren. Alternativ lassen Sie es in Shared-Ordner, aber nennen Sie es etwas wie ExtendedString, und dann in Sie Ansicht-Tag-Eigenschaften, die Sie mit expliziten UI-Hinweis wie so Editable gesetzt:
[System.ComponentModel.DataAnnotations.Editable(false)]
[System.ComponentModel.DataAnnotations.UIHint("ExtendedString")]
public string foobar {get;set;}