0

我们的客户需要一个仅查看表单(将控件设为只读不是可接受的解决方案:-(),当用户具有只读访问权限时,它将文本框/下拉列表/列表框(逗号分隔值)的值显示为标签表单。是否有一个 Jquery 插件可以做到这一点?我不想创建一组单独的部分视图来完成这个。

非常感谢这方面的任何帮助。

谢谢,

拉贾

4

2 回答 2

1

是的你可以。我不建议这样做。

用一个 CSS 类声明你的助手,这样你就可以用一个 JQuery 选择器来获取它们

@Html.TextBox("txtName", "20", new { @class = "cssChange" })

使用 JQuery 将其形式更改为标签

$( ".cssChange" ).replaceWith( function() {
    return "<input type=\"label\" value=\"" + $( this ).html() + "\" />";
});

我的代码没有经过测试。这纯粹是有指导意义的。

我建议反对它。相反,我会推荐另一个带有标签和切换的 div。但是这个选项是可用的。祝你好运。

于 2013-02-06T22:12:57.187 回答
0
    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());
    }
于 2013-02-06T22:52:26.853 回答