ポップアップエディターは、剣道とは完全に独立したMVCのエディターテンプレートを使用します。そのフィールドに読み取り専用のタグを付ける場合は、モデルのメタデータ属性をコードでアタッチする必要があります。元:
public class MyClassUsedInGrid
{
[System.ComponentModel.DataAnnotations.Editable(false)]
public string foobar {get;set;}
}
アップデート:
申し訳ありませんが、答えは元々不完全でした。組み込みのものはそれをサポートしていないので、これを処理するためにカスタムテンプレートを作成する必要があります(私はこれを私のプロジェクトに持っていて、それを忘れていました)。これを行うには、/ Views / Shared / EditorTemplates / string.cshtmlの下にビューを作成します(これはRazorで表示しますが、aspx構文に移植するのは簡単です)。
コードは次のようになります。
@model string
@if(ViewData.ModelMetadata.IsReadOnly){
@Html.DisplayForModel()
}else{
@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, new { @class = "text-box single-line" })
}
これにより、編集可能なメタデータ属性が適切に処理されます。もちろん、これは文字列専用です。他のオブジェクトについても同様のことを行う必要があります。他のビルドインテンプレートがどのように見えるかを探している場合は、次のサイトを確認してください:http: //bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-3-default-templates。 html
パフォーマンスに関する補足:これをアプリケーションのいくつかの場所の1つの場所でのみ行う場合は、代わりに/ Views / YourView /EditorTemplates/の下に配置することをお勧めします。その理由は、組み込みのテンプレートがフレームワークにコンパイルされ、一般的に高速に動作するためです。または、共有フォルダーに残しますが、ExtendedStringのような名前を付けてから、次のように明示的なUIヒントを使用して編集可能に設定したタグプロパティを表示します。
[System.ComponentModel.DataAnnotations.Editable(false)]
[System.ComponentModel.DataAnnotations.UIHint("ExtendedString")]
public string foobar {get;set;}