有趣,我覺得有點棘手,但嘿,我確定有人在那裏面對並找到了解決問題的方法。我的記錄將放在哪個頁面上?
反正,要求很簡單,但解決方案不是。
我用EF數據源使用標準的ASP.Net Listview控件。我在我的列表視圖中加載記錄,因此使用Asp.Net Pager。我使用搜索按鈕在我的頁面上放置了一個文本框,我希望能夠跳轉到搜索框中指定的記錄所在的頁面。我的案例中的記錄是我的EF Modal中的一個屬性。下面的代碼我用我的網頁
protected void JumptoRecordPostToServer_Click(object sender, EventArgs e)
{
int pagenrofjumptorecord = InspectionsBusinessObject.GetPageNumberforJumptoRecord(currentusername.Value, pid, DataPager1.PageSize, recordtoFind, Common.Util.GetUserRole());
this.Response.Redirect(string.Format("/foo.aspx?SelectedPage=", pagenrofjumptorecord.ToString()));
}
的GetPageNumberforJumptoRecord方法上有幾個參數不是真的對這個問題相關的,但在這裏是該方法
public static int GetPageNumberforJumptoRecord(string UserName,Guid ProjectID,int ItemsPerPage,int SiteNumber,UserRoles CurrentRole)
{
using (MyEFEntity context = new MyEFEntity())
{
try
{
//allsites = integer
int[] allsites = context.INSPECTIONS.Where(z => z.ProjectID.Equals(ProjectID)).Select(z => z.HouseSiteNo).ToArray();
Array.Sort(allsites);
int sitetoSearchforIndex = Array.IndexOf(allsites, SiteNumber);
int totalNrofItems = allsites.Length;
if (sitetoSearchforIndex != -1)
{
int nrofPages = totalNrofItems/ItemsPerPage; // <------- I guess my alghorithm here is wrong
return (sitetoSearchforIndex * nrofPages)/totalNrofItems; // <------- I guess my alghorithm here is wrong
}
}
catch {}
return -1;
}
}
您是否期望第一頁成爲第1頁或第0頁? – mafue 2012-07-26 20:22:59