Nullable 부울은 3- 상태를가집니다. 3 개의 라디오 버튼을 사용하면 드롭 다운 목록과 같이 두 번 클릭 할 필요가 없습니다. 또한 확인란을 false로 설정을 취소 할 수 있습니다. 확인란은 확인란 만있는 경우에는 수행 할 수 없습니다.
결과를 보여주는 명확하고 직관적 인 방법은 선택란입니다.
MVC3의 경우 Views | Shared | DisplayTemplates | Boolean.cshtml 파일에 다음 C# Razor 코드를 입력하여 true 일 때 선택란을 선택하고 false 일 경우 선택하지 않은 체크 상자를 표시하고 null 일 경우 아무 것도 표시하지 않습니다 (
). 일반적으로 Null은 사용자가 결정되지 않았거나 확실하지 않거나 요청하는 질문이 비공개이며 귀하의 비즈니스가 아니라고 생각하는 것을 의미합니다. 공유 | | EditorTemplates | 자동적으로 보여 Boolean.cshtml 파일 3 라디오 버튼을 MVC3를 들어
@model bool?
@{
//ForDisplay Template - similar template for EditFor
Dictionary<string, object> cbAttr = new Dictionary<string, object>();
cbAttr.Add("id", ViewData.TemplateInfo.GetFullHtmlFieldId(""));
if (Model.HasValue && Model.Value)
{
cbAttr.Add("checked", "checked");
@Html.CheckBox(ViewData.TemplateInfo.GetFullHtmlFieldId(""), cbAttr);
}
else if (Model.HasValue && !Model.Value)
{
@Html.CheckBox(ViewData.TemplateInfo.GetFullHtmlFieldId(""), cbAttr);
}
else
{
@Html.DisplayText(" ");
}
}
는 뷰에서 다음 C# 면도기 코드를 넣습니다.
@model bool?
<div data-ui="buttonset">
@{
Dictionary<string, object> yesAttrs = new Dictionary<string, object>();
Dictionary<string, object> noAttrs = new Dictionary<string, object>();
Dictionary<string, object> nullAttrs = new Dictionary<string, object>();
yesAttrs.Add("id", ViewData.TemplateInfo.GetFullHtmlFieldId("") + "Yes");
noAttrs.Add("id", ViewData.TemplateInfo.GetFullHtmlFieldId("") + "No");
nullAttrs.Add("id", ViewData.TemplateInfo.GetFullHtmlFieldId("") + "NA");
if (Model.HasValue && Model.Value)
{
yesAttrs.Add("checked", "checked");
}
else if (Model.HasValue && !Model.Value)
{
noAttrs.Add("checked", "checked");
}
else
{
nullAttrs.Add("checked", "checked");
}
}
@Html.RadioButtonFor(x => x, "true", yesAttrs)
<label for="@(ViewData.TemplateInfo.GetFullHtmlFieldId(""))Yes">Yes</label>
@Html.RadioButtonFor(x => x, "false", noAttrs)
<label for="@(ViewData.TemplateInfo.GetFullHtmlFieldId(""))No">No</label>
@Html.RadioButtonFor(x => x, "null", nullAttrs)
<label for="@(ViewData.TemplateInfo.GetFullHtmlFieldId(""))NA">TBD</label>
</div>