development

Html.TextBoxFor를 사용할 때 텍스트 상자를 읽기 전용으로 설정할 수 있습니까?

big-blog 2020. 12. 31. 23:20
반응형

Html.TextBoxFor를 사용할 때 텍스트 상자를 읽기 전용으로 설정할 수 있습니까?


Html.TextBoxFor식이있는 다음 태그가 있고 내용을 읽기 전용으로 만들고 싶습니다. 가능합니까?

<%= Html.TextBoxFor(m => Model.Events.Subscribed[i].Action)%>

주석에서 @ 1c1cle의 제안에 따라 최신 버전의 .NET 용으로 업데이트되었습니다.

<%= Html.TextBoxFor(model => Model.SomeFieldName, new {{"readonly", "true"}}) %>

누군가가 이것을 변경하기 위해 자바 스크립트를 주입 할 수 있기 때문에 이것이 "안전한"방법이 아니라는 것을 인식하십시오.

주의해야 할 점은이 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"})

죽기 위해

@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 => m.Crown, new { id = "", @style = "padding-left:5px", @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(model => Model.SomeFieldName, new Dictionary<string, object>(){{"disabled", "true"}}) %>

@Hunter의 예제를 사용하여 새로운 {..} 부분에 readonly = 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 클래스입니다.

그리고 Birthday 는 아마도 jQuery Datapicker날짜 를 유지하는 데 사용할 수있는 문자열 필드 일 수 있습니다. :)

<script>
             $(function () {
                 $("#Birthday").datepicker({

                 });
             });
  </script>

그것은 실제 생활의 예입니다.


readonly 속성을 true 또는 false로 설정하면 대부분의 브라우저에서 작동하지 않습니다. 페이지의 모드가 "reload"일 때 "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"

잘 작동


TextBoxFor를 비활성화 할 수도 있습니다.

@Html.TextBoxFor(x=>x.day, null, new { @class = "form-control success" ,@disabled="disabled" })

참조 URL : https://stackoverflow.com/questions/2539069/can-i-set-text-box-to-readonly-when-using-html-textboxfor

반응형