恬然自得.活在當下: [分享] 01/01 ASP.NET C# 小問題分享

2011年1月1日 星期六

[分享] 01/01 ASP.NET C# 小問題分享

祝大家新年快樂~!

Q.使用AllowPagingGridView出現分頁效果時,出現 資料來源不支援伺服器端的資料分頁。的錯誤訊息?

A.這可能是因為你使用了DataReaderBinding GridView,後來發現必須使用DataSet,因為要DataSet來產生一個Table物件,然後將資料放在Table中,才能夠進行分頁的動作。


OleDbCommand myCommand;
OleDbConnection myConnection;
OleDbDataAdapter myDataAdapter;

myConnection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;data source=" + Server.MapPath("database/Book.accdb"));
myConnection.Open();

DataSet myDataSet = new DataSet();
myCommand = new OleDbCommand("Select * from Book", myConnection);
myDataAdapter.Fill(myDataSet, "Book");

Grid1.DataSource = myDataSet;
Grid1.DataBind();

myConnection.Close();

Q.當你設定了分頁功能,並且在頁面上GridView有顯示成功,也有出現下一頁字樣,但是點下去時,卻出現 GridView引發但尚未處理的事件 PageIndexChanging的錯誤訊息。
A.後來我查了網路才知道,竟然還需要新增一個PageIndexChanging來控制事件@@,底下供程式碼給大家參考。

protected void Grid1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        Grid1.PageIndex = e.NewPageIndex;

        myConnection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;data source=" + Server.MapPath("database/Book.accdb"));
        myConnection.Open();

        DataSet myDataSet = new DataSet();
        myDataAdapter = new OleDbDataAdapter("Select * from Book", myConnection);
        myDataAdapter.Fill(myDataSet, "Book");

        Grid1.DataSource = myDataSet;
        Grid1.DataBind();

        myConnection.Close();
    }

沒有留言:

張貼留言

歡迎提供良性建議^_^