Bonjour,

Je suis actuellement entrain de réaliser un formulaire de recherche en Razor, avec plusieurs filtres.
Lorsque je clique sur le bouton recherche je souhaite afficher les données de la GRidView selon les filtres.

L'une des solutions que j'ai appliqué et de cacher ma GridView puis de la faire apparaître quand je clique sur le bouton, pour cela j'ai utilisé JS.

Le problème que j'ai est que lorsque je clique sur le bouton, la GridView avec les données souhaité s'affichent mais disparaît après quelques seconde.

Voici un bout de code dans la vue(où j'ai mis qu'un filtre):

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
 
 
<script type="text/javascript">
 
     function Recherche() {
 
         document.getElementById('GridView').style.visibility = 'visible'
     }
 
</script>
 
 
@using (Html.BeginForm("Index", "Mandat", FormMethod.Post)) //remplacer HOME  par mandat, mettre index
{ 
 
    Element de recherche : </text> @Html.DropDownList("DropDown", ViewData["ElementDeRecherche"] as SelectList) 
 
  <button type="submit" style="border: 0; background: transparent" onclick ="Recherche()"> 
        <img src="/Images/Boutons/rechercher.gif" width="115" height="18" alt="submit"/>
   </button>
 
}
 
    <div id="GridView"> @Html.Partial("Recherche") </div>   @* page ou se trouve la gridview *@


CODE CONTROLLER:


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
 
 
 
  public  DataProvider testAlimentationDrop = new DataProvider();
 
  [HandleError]
      public ActionResult Index(string DropDown)
      {
 
        ///Recuperation des elements de la colonne
        ViewData["ElementDeRecherche"] = testAlimentationDrop.getDataWhereStrPoleIsNotNull();
 
 
 
        var data = DataContext.mandat;
        Boolean test = false;
 
        if ((DropDown == "PNP"))
        {
          test = true;
        }
 
 
 
        if (test == true)
        {
          return View(data.Where(x => x.Pole.Equals(DropDown)));
        }
 
        else
        {
          return View(data.ToList());
        }    
      }

J'ai l'impression que se qui cause la disparition et la présence du Html.BeginForm puisque lorsque je le met en commentaire j'ai bien la gridview qui s'affiche et reste afficher mais du coup le filtre n'est pas pris en compte puisque l'action du controller n'est plus appellé.

Merci pour votre aide.