Bonjour,

j'ai un formulaire simple qui affiche la liste de tous mes clients dans un webgrid paginé et trié.

Jusque là ok.

Dans ce formulaire, j'ai rajouté un module de recherche sur le code postal pour afficher dans ce webgrid une sélection d'enregistrements.

Là encore ok.

Le problème :

A la première ouverture du formulaire, tous mes enregistrements s'affichent, je navigue dans les résultats: ok. L'utilisateur fait une recherche : exemple : liste des clients avec 69 dans le code postal. Ok par contre si je clique sur page 2 le webgrid ne tient plus compte de mon filtre et me réaffiche la page 2 avec tous mes enregistrements.

Je ne comprends pas d'où cela peut venir...

mon contrôleur :
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
public ActionResult Index()
        {
 
            string cpclient = Request.Form["cp_client"];
            ViewData["cpcli"] = cpclient;
            List<CLIENTS_ADR> clients = new List<CLIENTS_ADR>();
 
            if (!String.IsNullOrEmpty(cpclient))
            {
                clients = db.CLIENTS_ADR.Where(o => o.ADRCL_CP.Contains(cpclient)).ToList();
            }
            else
            {
                // Que faire s'il n'y a pas de code postal ?
                clients = db.CLIENTS_ADR.ToList();
            }
 
            return View(clients);
        }
Ma vue :
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
<div id="grid">
@{
  var grid = new WebGrid(Model, rowsPerPage: 20, 
  defaultSort: "CL_NOM");
  }
 
 
 
@grid.GetHtml(
fillEmptyRows:false,
mode:WebGridPagerModes.All,
 
columns: new[] {
 
        grid.Column("CL_NOM","Client"),
        grid.Column("ADRCL_LIBELLE","Lib Adresse"),
        grid.Column("ADRCL_CP","CP"),
        grid.Column("ADRCL_VILLE","Ville"),        
        grid.Column("CL_ADRMAIL","Adresse mail"),
        grid.Column("CL_TELEPHONE","Téléphone"),
        grid.Column("CL_FAX","Fax"),
        grid.Column("CL_AMIS","ADLR", format: @<text><input name="ADLR" type="checkbox" value="@item.CL_AMIS" @(item.CL_AMIS == false ? null : "checked") disabled="disabled" /></text>),
        grid.Column("CL_LOGIN","Login"),
        grid.Column("CL_PWD","Password"),
        grid.Column("CL_ESTFILIALE","Filiale", format: @<text><input name="Filiale" type="checkbox" value="@item.CL_ESTFILIALE" @(item.CL_ESTFILIALE == false ? null : "checked") disabled="disabled" /></text>),
        grid.Column("",
            header:"Actions",
            format:@<text>                         
                        <a href='@Url.Action("Edit","Client", new {id=item.CL_ID})'>
                       <img src="~/Content/images/icon_edit_admin.gif" alt="Edit" border="0"/>
                           </a>
                        <a href='@Url.Action("Details","Client", new {id=item.CL_ID})'>
                       <img src="~/Content/images/icone-details.gif" alt="Details" border="0"  />
                           </a>
                        <a href='@Url.Action("Delete","Client", new {id=item.CL_ID})'>
                       <img src="~/Content/images/trash.gif" alt="Supp" border="0"  />
                           </a>
                    </text>
    )
 
 
},
tableStyle: "webgrid",
    headerStyle: "webgrid-header",
    footerStyle: "webgrid-footer",
    alternatingRowStyle: "webgrid-alternating-row",
    selectedRowStyle: "webgrid-selected-row",
    rowStyle: "webgrid-row-style")
 
    </div>