2016-04-10 3 views
0

Как отключить или только читать, если FlagAccessEdit = false?

Как добавить дополнительный атрибут для динамического объекта?

public static MvcHtmlString CCheckBox(this HtmlHelper htmlHelper, 
string name,object htmlAttributes, 
bool FlagAccessEdit = true, bool FlagAccessView = true) 
{ 

      if (!FlagAccessView) 
       return MvcHtmlString.Empty; 
      else if (!FlagAccessEdit && FlagAccessView) 
      { 
       return htmlHelper.CheckBox(name, htmlAttributes); 
      } 
      else 
       return htmlHelper.CheckBox(name, htmlAttributes); 
} 
+0

Как сделать отключить или только для чтения ID FlagAccessEdit = ложь? –

+0

Если этот комментарий является частью вопроса, вы должны его отредактировать в вопросе, а не в качестве комментария. – petric

+0

Ответ от Ashish Shukla показывает одно решение, но какой смысл. Флажок «Только для чтения» отсутствует, и его отключение будет означать, что вы всегда отправляете обратно «false», даже если флажок сначала отображается как отмеченный ('true'), который, без сомнения, испортит ваше приложение. Если вы хотите сделать это, сгенерируйте скрытый ввод значения для некоторого текста (скажем «Да» или «Нет») –

ответ

0

Вы должны получить существующий htmlAttribute и добавить отключены или только для чтения на основе вашего состояния. Ниже приведен правильный код

метод Helper

public static MvcHtmlString CCheckBox(this HtmlHelper htmlHelper, 
     string name, object htmlAttributes,bool FlagAccessEdit = true, 
     bool FlagAccessView = true) 
    { 
     //get the htmlAttribute 
     IDictionary<string, object> attributes = new RouteValueDictionary(htmlAttributes); 

     if (!FlagAccessView) 
      return MvcHtmlString.Empty; 
     else if (!FlagAccessEdit && FlagAccessView) 
     { 
      //Add the disabled attribute 
      attributes.Add("disabled", "disabled"); 
      return htmlHelper.CheckBox(name, attributes); 
     } 
     else 
     { 
      return htmlHelper.CheckBox(name, htmlAttributes); 
     } 

    } 

Вызвать метод, как показано ниже

@Html.CCheckBox("chkCheckbox", new { id="chkDemo"},false,true) 
+0

Спасибо, что так много Ashish. Он работает нормально, как ожидалось :) –

Смежные вопросы