У меня есть следующий тег с выражением Html.TextBoxFor, и я хочу, чтобы содержимое было только для чтения, возможно ли это?
<%= Html.TextBoxFor(m => Model.Events.Subscribed[i].Action)%>
У меня есть следующий тег с выражением Html.TextBoxFor, и я хочу, чтобы содержимое было только для чтения, возможно ли это?
<%= Html.TextBoxFor(m => Model.Events.Subscribed[i].Action)%>
Обновлен для современных версий .NET per @1c1cle в комментарии:
<%= Html.TextBoxFor(model => Model.SomeFieldName, new {{"readonly", "true"}}) %>
Поймите, что это не "безопасный" способ сделать это, поскольку кто-то может вставить javascript, чтобы изменить это.
Что-то нужно знать о том, что если вы установите значение readonly
на false
, вы фактически не увидите никаких изменений в поведении! Поэтому, если вам нужно управлять этим на основе переменной, вы не можете просто подключить эту переменную туда. Вместо этого вам нужно использовать условную логику, чтобы просто не передавать этот атрибут readonly
.
Вот непроверенное предложение о том, как это сделать (если есть проблема с этим, вы всегда можете сделать if/else):
<%= Html.TextBoxFor(model => Model.SomeFieldName, shouldBeReadOnlyBoolean ? new {{"readonly", "true"}} : null) %>
<%= Html.TextBoxFor(m => Model.Events.Subscribed[i].Action, new { @readonly = true })%>
Используйте следующее:
@Html.TextBoxFor(m => m.Whatever, new {@readonly = "readonly"})
Если вы хотите присвоить ему класс, вы можете сделать это таким же образом, добавив @class="" имущество. Надеюсь, это поможет:)
Сделать это только для чтения
@Html.TextBoxFor(m=> m.Total, new {@class ="form-control", @readonly="true"})
В disable
@Html.TextBoxFor(m=> m.Total, new {@class ="form-control", @disabled="true"})
<%= Html.TextBoxFor(m => Model.Events.Subscribed[i].Action, new {readonly=true})%>
<%: Html.TextBoxFor(m => Model.Events.Subscribed[i].Action, new { @autocomplete = "off", @readonly=true})%>
Вот как вы устанавливаете несколько свойств
Эта работа для меня...
@Html.TextBoxFor(model => model.RIF, new { value = @Model.RIF, @readonly = "readonly" })
Следующий фрагмент работал у меня.
@Html.TextBoxFor(m => m.Crown, new { id = "", @style = "padding-left:5px", @readonly = "true" })
Используя пример @Hunter, в новой части {..} добавьте readonly = true, я думаю, что это сработает.
Другая возможность:
<%= Html.TextBoxFor(model => Model.SomeFieldName, new Dictionary<string, object>(){{"disabled", "true"}}) %>
Фактически ответ Brain Mains почти прав.
@Html.TextBoxFor(model => model.RIF, new { value = @Model.RIF, @readonly = true })
Если вам нужно применить свой собственный класс, вы можете использовать
@Html.TextBoxFor(m => m.Birthday, new Dictionary<string, object>() { {"readonly", "true"}, {"class", "commonField"} } )
Где
commonField - это класс CSS
и День рождения может быть строковым полем, которое вы, вероятно, можете использовать для сохранения даты jQuery Datapicker
:)
<script>
$(function () {
$("#Birthday").datepicker({
});
});
</script>
Это пример реальной жизни.
Установив атрибут readonly как true, так и false, не будет работать в большинстве браузеров, я сделал это, как показано ниже, когда режим страницы "перезагружен", я не включил атрибут "readonly".
@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;" })}
@Html.TextBoxFor(model => model.IdUsuario, new { @Value = "" + User.Identity.GetUserId() + "", @disabled = "true" })
@disabled = "true"
Хорошо работать