2012-07-16 46 views
0

我有一個MVC站點/視圖,它顯示了一系列頂部對應於我的webgrid記錄中可用年份的複選框。我想單擊複選框來過濾webgrid中的數據。我有這個工作,但是當我點擊webgrid中的標題進行排序時,我的複選框重置爲未選中狀態。如何在mvc中保留複選框選擇?

我用的WebForm編程所以一直依靠視圖狀態保持的選擇。

如何做到這一點的MVC世界?

這是我的代碼在視圖中顯示的複選框:

@using (Ajax.BeginForm(new AjaxOptions { InsertionMode=InsertionMode.Replace,UpdateTargetId="myGrid"})) 
{ 
    foreach (var y in Model.Years) 
    { 
     <input type="checkbox" name="cbYears" value="@y.Value" /> 
     <label for="cbYears">@y.Value</label> 
    } 
<br /> 
<input type="submit" value="Filter Results" /> 
} 

網格顯示在一個局部視圖。

TIA

回答

1

如何做到這一點的MVC世界?

當您在網格中執行排序時,您必須在請求中發送篩選選項。這個想法是,無論何時執行排序,您都必須以查詢字符串或表單的形式提交當前篩選選項,當前分頁以及與請求中網格相關的其他內容,並且這樣您就不需要維護狀態因爲請求中提供了所有需要的信息。

例如,如果你看到jqgrid,它提供了許多選項,如排序,過濾,分頁,分組等。首先我已經過篩選特定列/值的網格,然後如果我排序然後網格追加當前過濾列/值和排序將所有內容都列爲請求中的查詢字符串,因此在服務器端我不需要保留任何狀態,因爲所有查詢字符串都可用。

您也遵循了類似的一種方法。

相關問題