छिपे हुए क्षेत्रों के साथ एक आदिम की शिकायत करना यह स्पष्ट करने के लिए कि क्या गलत या अशक्त की सिफारिश नहीं की गई है।
चेकबॉक्स वह नहीं है जो आपको उपयोग करना चाहिए - यह वास्तव में केवल एक राज्य है: चेक किया गया । अन्यथा, यह कुछ भी हो सकता है।
जब आपका डेटाबेस फ़ील्ड एक अशक्त बूलियन ( bool?
) होता है, तो UX को 3-रेडियो बटन का उपयोग करना चाहिए, जहां पहला बटन आपके "चेक किए गए" का प्रतिनिधित्व करता है, दूसरा बटन "Not Checked" का प्रतिनिधित्व करता है और तीसरा बटन आपके null का प्रतिनिधित्व करता है, जो भी शब्दार्थ अशक्त का अर्थ है। आप <select><option>
रियल एस्टेट को बचाने के लिए एक ड्रॉप डाउन सूची का उपयोग कर सकते हैं , लेकिन उपयोगकर्ता को दो बार क्लिक करना होगा और विकल्प लगभग स्पष्ट रूप से स्पष्ट नहीं हैं।
1 0 null
True False Not Set
Yes No Undecided
Male Female Unknown
On Off Not Detected
RadioButtonList, RadioButtonForSelectList नाम के एक्सटेंशन के रूप में परिभाषित किया गया है, आपके लिए चयनित / चेक वैल्यू सहित रेडियो बटन बनाता है, और सेट करता है <div class="RBxxxx">
ताकि आप अपने रेडियो बटन को क्षैतिज (प्रदर्शन: इनलाइन-ब्लॉक), ऊर्ध्वाधर, या बनाने के लिए सीएसएस का उपयोग कर सकें एक टेबल फैशन में (प्रदर्शन: इनलाइन-ब्लॉक; चौड़ाई: 100 पीएक्स;)
मॉडल में (मैं शब्दकोश परिभाषा के लिए स्ट्रिंग, स्ट्रिंग का उपयोग कर रहा हूं। शैक्षणिक उदाहरण के रूप में। आप बूल का उपयोग कर सकते हैं ?, स्ट्रिंग)
public IEnumerable<SelectListItem> Sexsli { get; set; }
SexDict = new Dictionary<string, string>()
{
{ "M", "Male"},
{ "F", "Female" },
{ "U", "Undecided" },
};
//Convert the Dictionary Type into a SelectListItem Type
Sexsli = SexDict.Select(k =>
new SelectListItem
{
Selected = (k.Key == "U"),
Text = k.Value,
Value = k.Key.ToString()
});
<fieldset id="Gender">
<legend id="GenderLegend" title="Gender - Sex">I am a</legend>
@Html.RadioButtonForSelectList(m => m.Sexsli, Model.Sexsli, "Sex")
@Html.ValidationMessageFor(m => m.Sexsli)
</fieldset>
public static class HtmlExtensions
{
public static MvcHtmlString RadioButtonForSelectList<TModel, TProperty>(
this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TProperty>> expression,
IEnumerable<SelectListItem> listOfValues,
String rbClassName = "Horizontal")
{
var metaData = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData);
var sb = new StringBuilder();
if (listOfValues != null)
{
// Create a radio button for each item in the list
foreach (SelectListItem item in listOfValues)
{
// Generate an id to be given to the radio button field
var id = string.Format("{0}_{1}", metaData.PropertyName, item.Value);
// Create and populate a radio button using the existing html helpers
var label = htmlHelper.Label(id, HttpUtility.HtmlEncode(item.Text));
var radio = String.Empty;
if (item.Selected == true)
{
radio = htmlHelper.RadioButtonFor(expression, item.Value, new { id = id, @checked = "checked" }).ToHtmlString();
}
else
{
radio = htmlHelper.RadioButtonFor(expression, item.Value, new { id = id }).ToHtmlString();
}// Create the html string to return to client browser
// e.g. <input data-val="true" data-val-required="You must select an option" id="RB_1" name="RB" type="radio" value="1" /><label for="RB_1">Choice 1</label>
sb.AppendFormat("<div class=\"RB{2}\">{0}{1}</div>", radio, label, rbClassName);
}
}
return MvcHtmlString.Create(sb.ToString());
}
}