2011-12-11 131 views
2

檢查我有以下對象的網格:保持的CheckBox通過分頁

public PagedList<GridList> PagedList { get; set; } 


public class GridList 
{ 
    public Employee EmployeeItem { get; set; } 
    public bool isChecked { get; set; } 
} 

我的aspx實施的表環內,然後我把一個複選框爲每個員工:

<%foreach (var item in Model.PagedList) 
    {%> 
     <tr> 
     <td align="center"> 
      <%: Html.CheckBox(item.EmployeeItem.ID.ToString(), item.isChecked)%> 
     </td> 
    </tr> 
<% }%> 

我需要保持用戶更改頁面時選中的所有複選框。因此,如果他選擇頁面的2個或3個選項,然後更改頁碼,當他回到此頁面時,應該標記相同的檢查。

我嘗試了很多解決方案,但我不會在這裏評論他們只是爲了期待更好的解決方案。我試過的所有訂單都有我無法解決的問題。

當用戶單擊以轉到另一頁時,代碼將轉到[HttpGet]方法。

感謝您的幫助。

+0

你使用的是jQuery嗎? –

+0

@AdamRackis是的,我正在使用jQuery .. –

回答

0

您將不得不以某種方式在執行分頁時將選中的值發送到服務器,否則將會丟失它們。你有幾個可能的原因:

  1. 把複選框的HTML表單中一起與尋呼機,使尋呼機鏈接提交此表的按鈕。

  2. 使用AJAX執行分頁並只刷新DOM的網格部分,並且不要觸摸在複選框。這樣他們將保留他們的價值。

  3. 訂閱onclick事件尋呼機環節和內取消默認動作(evt.preventDefault()),收穫的複選框的值,並將其追加到將執行分頁的URL的查詢字符串。然後重定向到這個新的網址。

+0

其中最常用的是Darin?由於'Html.CheckBox'是一個HTML字段,第一個選項還沒有被使用?感謝您的答覆。 –

+0

@ Dan-SP,這將取決於你的確切場景,你如何生成和處理分頁鏈接,......這就是爲什麼我提出了3個選項。它們都是常用的。 –

+0

我明白了。昨天,我創建[這個問題](http://stackoverflow.com/questions/8465606/getting-form-values-with-mvcpager)試圖解釋我到底在做什麼。我使用MVCPager來執行我的分頁 –