2015-02-09 5 views
0

Итак, я хочу поменять свой флажок, который проверял и снял флажок с переключателей, которые говорят: «Да» (отмечено) или «Нет» (не отмечено).Как я могу изменить свой флажок для переключателей?

Вот что я сделал для флажка:

На моем взгляде:

@Html.CheckBoxUi("PerpendicularCheckbox",@H.GetString("IsPerpendicular"), null, new { style = "margin-right:10px", @class = "type-style-paragraph" }) 

ЯШИ:

$('input:checkbox[name=PerpendicularCheckbox]').on({ 
       "change": function() { 
        if (getUpdate()) { 
         var $this = $(this); 
         if (($this).is(':checked')) 
          $("ul li button").click(); 
        } 
       } 
      }); 

      if (!Perpendicular) {     
       $("#PerpendicularCheckbox").prop("checked", false); 
      } 
      else {    
       $("#PerpendicularCheckbox").prop("checked", true); 
      } 

мне было интересно, что мне нужно, чтобы изменить его на радио-кнопку, yes и no options, используя расширение html в asp.net mvc?

EDIT:

Моя loosy попытка радиокнопок:

@Html.RadioButtonForUi("PerpendicularCheckbox",@H.GetString("IsPerpendicular"), null, new { style = "margin-right:10px", @class = "type-style-paragraph" }) 



$('input:radio[name=PerpendicularCheckbox]').on({ 
        "change": function() { 
         if (getUpdate()) { 
          var $this = $(this); 
          if (($this).is(':checked')) 
           $("ul li button").click(); 
         } 
        } 
       }); 

RadioButtonForUi:

public static MvcHtmlString RadioButtonForUi<TModel, TProperty>(
      this HtmlHelper<TModel> htmlHelper, 
      Expression<Func<TModel, TProperty>> expression, 
      string name, 
      bool IsEnable, 
      bool IsChecked, 
      object onchange = null, 
      string className = "", 
      bool isRequreid = true 

     ) {etc.....} 
+0

ли вы имеете в виду, как это? https://msdn.microsoft.com/en-us/library/dd493075(v=vs.100).aspx –

+0

Да что-то в этом роде, но я просто хочу знать, как использовать @ html.radiobutton с выбором да и нет для вышеуказанного флажка. –

+0

так почему бы не использовать @ Html.RadioButtonFor, если вам нужен переключатель? – oqx

ответ

0

Вот Исследуемый образец:

 <div class="form-group"> 
     @Html.LabelFor(model => model.SaleOfPropertyPurchase, htmlAttributes: new { @class = "control-label col-md-2" }) 
     <div class="col-md-10"> 
      <div class="checkbox"> 
       @Html.RadioButtonFor(model => model.SaleOfPropertyPurchase, true, new { id = "SaleOfPropertyPurchase-true" }) Yes 
       @Html.RadioButtonFor(model => model.SaleOfPropertyPurchase, false, new { id = "SaleOfPropertyPurchase-false" }) No 
       @Html.ValidationMessageFor(model => model.SaleOfPropertyPurchase, "", new { @class = "text-danger" }) 
      </div> 
     </div> 
    </div> 

Вот некоторые примеры jquery, что реагирует на радио кнопки мыши, а также устанавливает начальный дисплей на форме:

@Scripts.Render("~/bundles/jquery") 
<script type="text/javascript"> 
    $(function() { 
     $('#CurrentPropertyOwner-true').on('change', function() { 
      $('#CurrentProperty').show(); 
     }); 
    }); 
    $(function() { 
     $('#CurrentPropertyOwner-false').on('change', function() { 
      $('#CurrentProperty').hide(); 
     }); 
    }); 

    $(document).ready(function() { 
     var ischecked = $('#CurrentPropertyOwner-true').is(':checked') 
     if (ischecked == true) { 
      $('#CurrentProperty').show(); 
     } 
     var ischecked = $('#CurrentPropertyOwner-false').is(':checked') 
     if (ischecked == true) { 
      $('#CurrentProperty').hide(); 
     } 
    }); 
</script> 
0

Вам нужно сделать две радиокнопки для свойства, один со значением «Правда», а другой со значением «False», поэтому выбранное значение может быть связана со значением boolean

Вы пользовательский HTML помощник должен был бы быть

namespace YourAssembly.Html 
{ 
    public static class MyHelpers 
    { 
    public static MvcHtmlString BooleanButtonsFor<TModel>(this HtmlHelper<TModel> helper, Expression<Func<TModel, bool>> expression) 
    { 
     ModelMetadata metaData = ModelMetadata.FromLambdaExpression(expression, helper.ViewData); 
     string name = ExpressionHelper.GetExpressionText(expression); 
     StringBuilder html = new StringBuilder(); 
     // Yes button 
     string id = string.Format("{0}-yes", name); 
     html.Append(helper.RadioButtonFor(expression, "True", new { id = id })); 
     html.Append(helper.Label(id, "Yes")); 
     // No button 
     id = string.Format("{0}-no", name); 
     html.Append(helper.RadioButtonFor(expression, "False", new { id = id })); 
     html.Append(helper.Label(id, "No")); 
     // enclode in a div for easier styling with css 
     TagBuilder div = new TagBuilder("div"); 
     div.AddCssClass("radiobuttongroup"); 
     div.InnerHtml = html.ToString(); 
     return MvcHtmlString.Create(div.ToString()); 
    } 
    } 
} 

затем добавить ссылку на <namespaces> раздел web.config

<add namespace="YourAssembly.Html "/> 

и использовать его в представлении

@Html.BooleanButtonsFor(m => m.YourBoolProperty)