slt a vous voila j'ai une liste que j'affiche á travers le viewData.Model mais j'aimerais operer un filtre sur cette liste. j'ai essayé une requete ceci de plusieur maniere et constate par la suite que le rendu n'etait pas le escompté car mon ViewData.Model ne c'est pas reinitaliser alors afin de resoudre ce probleme je solicite une fois de plus votre assistance.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
 
 
 
    // ma zone de recherche dans ma liste
 
   <% using (Html.BeginForm("AddEtudiant","Home"))
   {%>
        <%: Html.ValidationSummary(true) %>
 
        <fieldset style=" width:35%">
            <legend>Zone de Recherche d un Etudiant </legend>
 
            <div class="editor-label">
               <label>FirstName</label>
            </div>
            <div class="editor-field">
                <%: Html.TextBox("FirstName") %>
            </div>
 
            <div class="editor-label">
                <label> Cycle </label>
            </div>
            <div class="editor-field">
                <%: Html.TextBox("Cycle") %>
            </div>
 
            <div class="editor-label">
                <label> Options </label>
            </div>
            <div class="editor-field">
                <%: Html.TextBox("options") %>
            </div>
 
            <div class="editor-label">
                <label> Groupe </label>
            </div>
            <div class="editor-field">
                <%: Html.TextBox("groupe") %>
            </div>
 
            <div class="editor-label">
               <label> Niveau </label>
            </div>
            <div class="editor-field">
                <%: Html.TextBox("Niveau") %>
            </div>
 
            <p>
                <input type="submit" value="Rechercher" />
            </p>
        </fieldset>
 
    <% } %>

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
 
     //mon controller
 
 
      public ActionResult ListeEtudiant()
        {
 
         // affichage par defaut
 
            if (ViewData["listetude"] == null)
            {
                var EtudiantListe = from et in _db.Etudiants
                                    join etm in _db.EtudiantMatieres
                                    on et.EtudiantId equals etm.EtudiantId
                                    select new EtudiantModel
                                    {
                                        EtudiantId = et.EtudiantId,
                                        FirstName = et.FirstName,
                                        LastName = et.LastName,
                                        Sexe = et.Sexe,
                                        Numero = et.Numero,
                                        Contact = et.contact,
                                        Matricule = et.Matricule,
                                        Email = et.Email,
                                        Cycle = etm.Cycles,
                                        options = etm.options,
                                        groupe = etm.groupe,
                                        Niveau = etm.Niveau
 
                                    };
 
                ViewData.Model = EtudiantListe;
            }
 
            //affichage apres filtrage en fontion de infos de la zone de recherche
 
   if (ViewData["listetude"]!=null)
 
            {  
                    string query = "";
                    string select = "";
                    string from = "";
                    string where = "";
 
                    select = "SELECT * ";
                    from = " FROM Etudiant,EtudiantMatiere ";
                    where = " WHERE Etudiant.EtudiantId = EtudiantMatiere.EtudiantId ";
 
                    if (forme["FirstName"].Length > 0)
                    {
                        where = where + " AND Etudiant.FirstName  LIKE  '%" + forme["FirstName"] + "%'";
                    }
                    if (forme["Cycle"] !="0")
                    {
                        where = where + " AND EtudiantMatiere.Cycles LIKE  '%" + forme["Cycle"] + "%'";
                    }
 
                    if (forme[" options"] !="0")
                    {
                        where = where + " AND EtudiantMatiere.options LIKE  '%" + forme[" options"] + "%'";
                    }
 
 
                    if (forme[" groupe"]!="0")
                    {
                        where = where + " AND EtudiantMatiere.groupe LIKE  '%" + forme[" groupe"] + "%'";
                    }
 
                    if (forme["Niveau"].Length > 0)
                    {
                        where = where + " AND EtudiantMatiere.Niveau LIKE  '%" + forme["Niveau"] + "%'";
                    }
 
 
                    query = select + " " + from + " " + where;
 
 
                   var EtudiantListe =  _db.ExecuteStoreQuery<EtudiantModel>(query).ToString();
 
                   ViewData.Model = EtudiantListe;
     }
 
            return View();
        }
 
  //
 {
 
                  public ActionResult AddEtudiant(FormCollection form)
        {
 
           if(string.IsNullOrEmpty(form["Rechercher"]))
           {
 
               forme = form;
               ViewData["listetude"] = "Initialiser";
               ListeEtudiant();
               return RedirectToAction("ListeEtudiant");
 
           }
 
  // notons que forme est variable FormeCollection global
comme vous pouvez le voir ListeEtudiant est appelle apres excution du button recherche et l'initialisation du ViewData["listetude"] avant l'appelle permet excusion du bloque de filtrage pourtant au rendu j'obtient la meme liste au lieu d'une liste filtre.
alors que faire,comme resoudre ce probleme?
toute aide,assistance ou conseil sera la bien venus.
a++