我是asp新手,已經編寫了一個項目,它將連接到數據庫,檢索數字記錄,然後將這些記錄以分頁表格的形式呈現給用戶。用戶可以點擊一條記錄進行編輯,進行編輯,保存更改並返回到原始表格視圖。更新頁面是強類型的。ASP.NET mvc 3分頁/跟蹤最後一頁
我很努力跟蹤上一次查看哪個分頁頁面,然後導航回去。即如果用戶位於第10頁的第5頁上,則他們會從第5頁更新記錄,當保存編輯時,表格會再次顯示,但它已返回到第1頁。最後一個記錄最後一個方法的最佳方法是什麼分頁頁面?
任何幫助表示讚賞。
克里斯
我是asp新手,已經編寫了一個項目,它將連接到數據庫,檢索數字記錄,然後將這些記錄以分頁表格的形式呈現給用戶。用戶可以點擊一條記錄進行編輯,進行編輯,保存更改並返回到原始表格視圖。更新頁面是強類型的。ASP.NET mvc 3分頁/跟蹤最後一頁
我很努力跟蹤上一次查看哪個分頁頁面,然後導航回去。即如果用戶位於第10頁的第5頁上,則他們會從第5頁更新記錄,當保存編輯時,表格會再次顯示,但它已返回到第1頁。最後一個記錄最後一個方法的最佳方法是什麼分頁頁面?
任何幫助表示讚賞。
克里斯
最後,我使用的服務器上的會話cookie來跟蹤顯示的頁面和上次搜索。這意味着我可以在頁面/控制器之間導航,並跟蹤每個頁面顯示的內容,而且不需要傳遞大量參數。在控制器
private SearchModel GetSearch()
{
SearchModel search = (SearchModel)Session["CgRefCodeSearch"];
if (search == null)
{
search = new SearchModel();
search.Page = 1;
search.OriginalSearchCriteria = "";
Session["CgRefCodeSearch"] = search;
}
return search;
}
在每一個功能,那麼我可以參考這個:我添加了一個新的類:
public class SearchModel
{
public string TargetController { get; set; }
public string TargetMethod { get; set; }
public string OriginalSearchCriteria { get; set; }
public string NewSearchCriteria { get; set; }
public int Page { get; set; }
public void SetCriteria(String newCriteria, int pageIn)
{
if (!newCriteria.Equals(OriginalSearchCriteria))
{
OriginalSearchCriteria = newCriteria;
Page = 1;
}
else
{
Page = pageIn;
}
}
public void SetPage(int newPage)
{
if (newPage != 0)
Page = newPage;
}
}
在控制器我只是說
GetSearch().SetPage(page);
CurrentPage = GetSearch().Page etc...
這是基於我在這個由Adam Freeman編寫的Pro ASP.NET MVC 3框架第三版中閱讀的東西;史蒂文桑德森。它非常簡單,但可以正常工作。
通常我會重定向後,當保存傳遞表單提交的頁碼,然後,把它作爲查詢字符串的一部分,所以你的行動可以提供數據的正確頁面返回給視圖。
這也可以讓用戶收藏特定頁面,這可能很有用,甚至只是在必要時刷新當前頁面,而不會丟失它們的位置。
如果該功能可用,您可能還需要傳遞排序信息。
我沒有嘗試過。我可以將當前的分頁頁面傳遞到編輯頁面,沒有任何問題。當編輯保存時,我無法將該值傳回控制器。編輯頁面是非常類型的,保存只是一個提交嘗試添加一個額外的參數到這個調用: @using(Html.BeginForm(「IndexEdit」,「CgRefCodes」,FormMethod.Post,new {id =「target」 })) – Chris
我發現它是很好的保存在視圖狀態: 例如:
的ViewState(「尋呼」)= 1
看看這個答案:http://stackoverflow.com/a/9773887/138938 –