私たちのクライアントは、表示専用フォームを必要とします (コントロールを読み取り専用にすることは、許容できる解決策ではありません:-( ) ユーザーが読み取り専用アクセス権を持っている場合、テキストボックス/ドロップダウン/リストボックス (カンマ区切り値) の値をラベルとして表示しますこれを行う Jquery プラグインはありますか? 私はこれを達成するために部分ビューの別のセットを作成したくありません。
この点でどんな助けでも大歓迎です。
ありがとう、
ラジャ
私たちのクライアントは、表示専用フォームを必要とします (コントロールを読み取り専用にすることは、許容できる解決策ではありません:-( ) ユーザーが読み取り専用アクセス権を持っている場合、テキストボックス/ドロップダウン/リストボックス (カンマ区切り値) の値をラベルとして表示しますこれを行う Jquery プラグインはありますか? 私はこれを達成するために部分ビューの別のセットを作成したくありません。
この点でどんな助けでも大歓迎です。
ありがとう、
ラジャ
はい、できます。私はそれをお勧めしません。
css クラスでヘルパーを宣言して、JQuery セレクターでヘルパーをすべて取得できるようにします
@Html.TextBox("txtName", "20", new { @class = "cssChange" })
JQuery を使用してフォームをラベルに変更します
$( ".cssChange" ).replaceWith( function() {
return "<input type=\"label\" value=\"" + $( this ).html() + "\" />";
});
私のコードはテストされていません。それは純粋に有益です。
そして、私はそれに対してお勧めします。代わりに、ラベルとトグルを備えた別の div をお勧めします。しかし、このオプションは利用可能です。幸運を。
public static MvcHtmlString EditorOrDisplayFor<TModel, TProperty>(
this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression,
bool canEdit, int boxWidth = 100)
{
var sb = new StringBuilder();
if (canEdit)
{
var editor = htmlHelper.TextBoxFor(expression, new { style = "width: " + boxWidth + "px;" });
sb.AppendFormat("<div class=\"TextEditor\">{0}</div>", editor);
}
else
{
var lbl = htmlHelper.LabelFor(expression);
var hid = htmlHelper.HiddenFor(expression);
sb.AppendFormat("<div class=\"CanNotEdit\">{0}{1}</div>", lbl, hid);
}
return MvcHtmlString.Create(sb.ToString());
}