2013-02-06 12 views
0

我們的客戶端只需要一個視圖窗體(使控件爲只讀形式並不是一個可接受的解決方案:-()它顯示文本框的值/下拉列表框逗號分隔值)作爲標籤,當用戶只讀訪問該表單時,是否有一個Jquery插件可以做到這一點?我不想創建一個單獨的部分視圖集來完成這個任務。這方面是非常讚賞。Jquery - 將控件更改爲標籤(僅限查看錶單)

感謝,

拉賈

+0

你爲什麼不阻止他們發佈呢? – Popnoodles

+0

我已經完全採取了任何有點行動的按鈕,但它是不被客戶接受的。他們希望用戶只能看到標籤,只要它們具有隻讀訪問權限即可。 – Raja

+0

只有標籤?那麼不是具有這些值的輸入?只是標題像「標題」沒有有用的數據「電子郵件」沒有有用的數據等 – Popnoodles

回答

1

是的,你可以。我不建議。

使用CSS類中聲明你的助手這樣你就可以抓住他們所有jQuery選擇

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

使用jQuery來改變自己的形式,以標籤

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

我的代碼沒有測試 。這純粹是有益的。

我建議反對它。我會推薦另一個帶有標籤和切換的div。但是這個選項是可用的。祝你好運。

+0

這似乎是一個不錯的選擇。我將以此爲起點,並與之合作。感謝一堆戴夫:)。 – Raja

+0

@Raja,祝你好運! –

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()); 
    } 
+0

然後只是@ Html.EditorOrDisplayFor(m => m.myData,Model.CanEdit.myData,200) – KennyZ

+0

框寬度是我最終需要以後。 – KennyZ