Tôi có thẻ sau với biểu thức Html.TextBoxFor và tôi muốn nội dung chỉ đọc, điều này có thể không?Tôi có thể đặt hộp văn bản thành chỉ đọc khi sử dụng Html.TextBoxFor không?
<%= Html.TextBoxFor(m => Model.Events.Subscribed[i].Action)%>
Tôi có thẻ sau với biểu thức Html.TextBoxFor và tôi muốn nội dung chỉ đọc, điều này có thể không?Tôi có thể đặt hộp văn bản thành chỉ đọc khi sử dụng Html.TextBoxFor không?
<%= Html.TextBoxFor(m => Model.Events.Subscribed[i].Action)%>
cập nhật cho các phiên bản hiện đại của .NET mỗi gợi ý @ 1c1cle của trong một chú thích:
<%= Html.TextBoxFor(model => Model.SomeFieldName, new {{"readonly", "true"}}) %>
Đừng nhận ra rằng đây không phải là một cách "an toàn" để làm điều này như ai đó có thể tiêm javascript để thay đổi điều này.
Điều cần lưu ý là nếu bạn đặt giá trị readonly
thành false
, bạn thực sự sẽ không thấy bất kỳ thay đổi nào về hành vi! Vì vậy, nếu bạn cần phải lái xe này dựa trên một biến, bạn không thể chỉ cần cắm biến đó trong đó. . Thay vào đó bạn cần phải sử dụng logic có điều kiện để đơn giản là không vượt qua mà readonly
thuộc tính trong
Dưới đây là một đề nghị chưa được kiểm tra như thế nào để làm điều này (nếu có một vấn đề với điều này, bạn luôn có thể làm một if/else):
<%= Html.TextBoxFor(model => Model.SomeFieldName, shouldBeReadOnlyBoolean ? new {{"readonly", "true"}} : null) %>
Từ điển mới
<%= Html.TextBoxFor(m => Model.Events.Subscribed[i].Action, new {readonly=true})%>
Sử dụng ví dụ của @Hunter, ở phần mới {..}, thêm readonly = true, tôi nghĩ rằng sẽ làm việc.
Không, điều đó đưa ra một lỗi: Cụm từ biểu thức không hợp lệ 'chỉ đọc' –
<%= Html.TextBoxFor(m => Model.Events.Subscribed[i].Action, new { @readonly = true })%>
điều này là đúng, nhưng @ readonly = false cung cấp kết quả tương tự cho tôi. Vì vậy, đó là giá trị của chỉ đọc mà quyết định chức năng, nhưng sự tồn tại của chính thuộc tính đó. – 1c1cle
có cách nào để khắc phục điều này không? Về cơ bản tôi muốn gán động @readonly = false hoặc true trên một số biến khác (yêu cầu ngu ngốc) – rank1
<%: Html.TextBoxFor(m => Model.Events.Subscribed[i].Action, new { @autocomplete = "off", @readonly=true})%>
Đây là cách bạn thiết lập nhiều thuộc tính
công việc này đối với tôi ...
@Html.TextBoxFor(model => model.RIF, new { value = @Model.RIF, @readonly = "readonly" })
Trong thực tế, câu trả lời của Brain Mains là gần như chính xác:
@Html.TextBoxFor(model => model.RIF, new { value = @Model.RIF, @readonly = true })
Trong trường hợp nếu bạn phải áp dụng lớp tùy chỉnh của bạn, bạn có thể sử dụng
@Html.TextBoxFor(m => m.Birthday, new Dictionary<string, object>() { {"readonly", "true"}, {"class", "commonField"} })
Đâu là
commonField được CSS class
và Sinh nhật co trường chuỗi uld là chuỗi mà bạn có thể sử dụng để giữ jQuery Datapicker
ngày :)
<script>
$(function() {
$("#Birthday").datepicker({
});
});
</script>
Đó là ví dụ thực tế.
Bằng cách đặt thuộc tính chỉ đọc thành true hoặc false sẽ không hoạt động trong hầu hết các trình duyệt, tôi đã thực hiện như dưới đây, khi chế độ của trang "tải lại", tôi chưa bao gồm thuộc tính "chỉ đọc".
@if(Model.Mode.Equals("edit")){
@Html.TextAreaFor(model => Model.Content.Data, new { id = "modEditor", @readonly = moduleEditModel.Content.ReadOnly, @style = "width:99%; height:360px;" })
}
@if (Model.Mode.Equals("reload")){
@Html.TextAreaFor(model => Model.Content.Data, new { id = "modEditor", @style = "width:99%; height:360px;" })}
Một khả năng khác:
<%= Html.TextBoxFor(model => Model.SomeFieldName, new Dictionary<string, object>(){{"disabled", "true"}}) %>
Để làm cho nó chỉ đọc
@Html.TextBoxFor(m=> m.Total, new {@class ="form-control", @readonly="true"})
Để Diable
@Html.TextBoxFor(m=> m.Total, new {@class ="form-control", @disabled="true"})
Sử dụng như sau:
@Html.TextBoxFor(m => m.Whatever, new {@readonly = "readonly"})
Nếu bạn muốn chỉ định một lớp cho nó, bạn có thể thực hiện theo cùng một cách, bằng cách thêm thuộc tính @class = "" . Hy vọng điều này sẽ giúp :)
Điều này làm việc cho tôi. – Orion
Đoạn mã sau đã hiệu quả đối với tôi.
@Html.TextBoxFor(m => m.Crown, new { id = "", @style = "padding-left:5px", @readonly = "true" })
@Html.TextBoxFor(model => model.IdUsuario, new { @Value = "" + User.Identity.GetUserId() + "", @disabled = "true" })
@disabled = "true"
làm việc rất tốt
> [Đây là N Bạn có thể nhìn thấy. làm thế nào để tạo textbox chỉ đọc trong MVC] (http://www.codeshower.blogspot.in/2012/09/mvc-how-to-create-readonly-textbox-in.html) –