2010-08-30 6 views
1

J'utilise une aide checkboxlist et je la lie dynamiquement ... Maintenant, je veux maintenir l'état des cases à cocher?Comment maintenir l'état d'une checkboxlist mvc après la publication du formulaire?

public ActionResult Step3() 
     { 
      CustomerQuestion _Cust = new CustomerQuestion(); 
      //Retrieve the answer from database by siteid 
      var Questions = QAService.GetAllAnswer(1); 
      var Questionscount = QAService.GetAllAnswer(1).Count(); 
      _Cust.Question18 = Questions.Where(s => s.QuestionID == 18); 
      return View(_Cust); 
     } 

et est ici la vue

<%= Html.CheckBoxList("Question18", new SelectList(Model.Question18, "AnswerID", "Answer"))%> 
+0

Vous devrez faire un peu plus d'effort pour décrire votre scénario et idéalement montrer vos échantillons de code. –

+0

J'ai posté le code – Hasan

Répondre

0

montrent le code afin que nous puissions vous aider.

Je suppose que vous voulez conserver les cases à cocher lorsque vous retournez la vue et qu'il y a une formvalidation.

avez-vous retourné votre objet dans la vue?

EDIT:

Vous ne pouvez pas faire plus de 1 valeur sélectionnée dans un SelectList. Il est préférable d'utiliser List<SelectListItem>

J'utilise ce code.

public static IList<SelectListItem> ToSelectList<T>(this IEnumerable<T> itemsToMap, Func<T, string> textProperty, Func<T, string> valueProperty, Predicate<T> isSelected) { 
     var result = new List<SelectListItem>(); 

     foreach (var item in itemsToMap) { 
      result.Add(new SelectListItem { 
       Value = valueProperty(item), 
       Text = textProperty(item), 
       Selected = isSelected(item) 
      }); 
     } 
     return result; 
    } 

puis

ViewData["test"]= _Cust.Question18.ToSelectList(q=>q.Answer, q=>q.AnswerID, q=>someListOfAnswerIDS.Contains(q.AnswerID)); 


<%= Html.CheckBoxList("Question18", ViewData["test"] as List<SelectListItem>)%> 
+0

Mais je veux continuer avec l'assistant checkboxlist ... n c'est ce que je dois utiliser strictement – Hasan

+0

vérifier la modification ... – Stefanvds

-1

publique ActionResult Etape 3() { CustomerQuestion _Cust = new CustomerQuestion(); // Récupérer la réponse de la base de données par siteid var Questions = QAService.GetAllAnswer (1); var Questionscount = QAService.GetAllAnswer (1) .Count(); _Cust.Question18 = Questions.Où (s => s.QuestionID == 18); return Afficher (_Cust); }

et voici la vue

je suis lient toutes les langues de la base de données dans cette liste. s'il y a une erreur de validation sur cette page que je veux maintenir l'état de vérification de les cases à cocher

Questions connexes