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,這裡是我的開發筆記的網誌,如果你對我的文章有任何疑問或者有錯誤的話,歡迎留言讓我知道。