GridView History.back()後分頁跑回第一頁
資料控制項對於返回上一頁後都有無法紀錄先前的分頁頁數的問題,本來想要放棄改用ASP的方式自己畫表格,但是這樣就浪費的ASP.NET所提供控制項的目的了,找了好久終於在網路上看到人家的解決方式,解決後又有一些小問題,在IE6.0的時候會出現一個DIV來記錄當前分頁,於是再上方出現一個空格,在這裡運用CSS來處理掉即可。
前端與法 .aspx
後端與法 .aspx.cs
參考網址 Wizard 編程網1 、 Wizard 編程網2 、 dotnetslackers
前端與法 .aspx
<style type="text/css" > /*====消除ScriptManager1_Navigate所產生DIV之空格======*/ div{ display:inline; } </style> <asp:ScriptManager ID="ScriptManager1" runat="server" EnableHistory="True" OnNavigate="ScriptManager1_Navigate"> </asp:ScriptManager>
後端與法 .aspx.cs
//解決超連結後分頁跑回第一頁問題 private static string pageKey = "p"; protected void ScriptManager1_Navigate(object sender, HistoryEventArgs e) { if (e.State.Count <= 0) { // Setup default state GridView1.PageIndex = 0; return; } string key = e.State.AllKeys[0]; string state = String.Empty; if (String.Equals(key, pageKey)) { state = e.State[key]; int pageIndex = Int32.Parse(state); GridView1.PageIndex = pageIndex; //下拉式分頁設定 GridViewRow dgBottomPageRow; DropDownList drpPage; dgBottomPageRow = GridView1.BottomPagerRow; drpPage = (DropDownList)dgBottomPageRow.Cells[0].FindControl("drpPage"); drpPage.SelectedIndex = pageIndex; } } //點選分頁時 protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) { if (e.NewPageIndex != -1) { GridView1.PageIndex = e.NewPageIndex; //紀錄回覆點 string state = (sender as GridView).PageIndex.ToString(); ScriptManager.GetCurrent(this).AddHistoryPoint(pageKey, state); } } //下拉式選單改變時 protected void drpPage_SelectedIndexChanged(object sender, EventArgs e) { GridViewRow dgBottomPageRow; DropDownList drpPage; try { dgBottomPageRow = GridView1.BottomPagerRow; drpPage = (DropDownList)dgBottomPageRow.Cells[0].FindControl("drpPage"); GridView1.PageIndex = Convert.ToInt32(drpPage.SelectedValue) - 1; //紀錄回覆點 string state = GridView1.PageIndex.ToString(); ScriptManager.GetCurrent(this).AddHistoryPoint(pageKey, state); GetData(); } catch (Exception ex) { clsPublic.AJAXErrMessageBox(ex.Message, this.Page); } }
參考網址 Wizard 編程網1 、 Wizard 編程網2 、 dotnetslackers
留言
張貼留言
您好,我是 Lawrence,這裡是我的開發筆記的網誌,如果你對我的文章有任何疑問或者有錯誤的話,歡迎留言讓我知道。