2012-01-25 28 views
0

WebGridを読み込み時に読み込む検索ページがあります。私の問題はページングです。 私はグリッドに「公開されていない」記事を記入します(この場合は何もありません)。 次に、「現在公開されている」と検索して3行を取得します。MVC 3 WebGridページングが元の検索結果を返さない

3つのページがあります。グリッドは、2つのページがあると言うことができます

2番目のページに移動するには、グリッドが負荷の基準を満たしている - 非公開のものはありません。私はページクリックでHttpPostアクションに戻っていません - なぜそれがこれを行うのかわかりません。

私は最初の負荷がAdmin とPost私は戻って

 public ActionResult Admin() 
     { 

      var menus = 
      (
       from p in db.Menus.ToList() 
       where p.ParentID == 0 
       orderby p.Order ascending 
       select p.Name 
      ); 
      ViewBag.Menus = new SelectList(menus, "Home"); 

      string[] publishedStatuses = new string[3] 
        { "NOT PUBLISHED", "EXPIRED ALREADY", "CURRENTLY PUBLISHED"}; 
      ViewBag.Published = new SelectList(publishedStatuses, "NOT PUBLISHED"); 

      var articles = 
      (
        from p in db.Articles.ToList() 
        where p.PublishToWeb == false && p.Menu == "Home"     
        select p 
      ); 

      } 
      return View(articles); 
     }    
} 

答えて

0

「公開しない」にデフォルト値を設定し、両方のAdmin(FormCollection値) と呼ばれ、ここであなたの問題は、あなたがページをクリックしているリンクが再び管理コントローラのアクションを呼び出して、あなた以来ということですパラメータを受け取っていないので、再度最初の検索を行います。

あなたのようにアクションメソッドを変更する場合:

public ActionResult Admin(int? page) 
{ 
    //Your code here 
} 

は、Webグリッドからページ番号を取得し、あなたの検索でそれを使用することができます。フィルタリングとsearchginを有効にするには、このブログの記事を見て:私は私の完全なコードを渡すことができませんでした

http://www.elylucas.net/post/Using-a-grid-that-can-sort-page-and-filter-in-AspNet-MVC3e28093Part-1e28093Using-the-WebGrid-WebHelper.aspx

+0

申し訳ありません - 私は{ [HttpPost] 公共のActionResultの管理(FormCollection値)を持っていますViewBag.Publishedのパラメータでフィルタリングされたビューに記事を返します。Published} –

+0

2番目のページをクリックすると、Not Publishedの結果が表示されます。これは、thjeドロップダウンのデフォルトです。私はそれがどのように正しくそのレコードを取得するのかわからないので、それはありませんが、管理者の投稿機能を通過することはありません。 –

+0

セションクリックではAdmin not Adminポストが呼び出されているので、元のデフォルト設定になっています。ページングクリックでAdmin Postに電話するにはどうすればよいですか? –

関連する問題