2013-05-12 69 views
0

我使用網格視圖web控制的asp.net,即時通訊使用分頁控制,我處理了分頁事件,但它不顯示數據,如果我點擊2,3,4 ...等鏈接它不顯示一個結果set..it不給任何異常,但只是顯示沒有開的第一page.here是代碼:GridView分頁控制問題

public partial class Main : System.Web.UI.Page 
{ 
protected string PostBackOption = ""; 

protected void Page_Load(object sender, EventArgs e) 
{ 
    this.check.Text = " "; 
    if (Page.IsPostBack) 
    { 
     PostBackOption = "$(\"#dialog\").dialog(\"open\");"; 
    } 
} 

List<Allemployees> result1 = new List<Allemployees>(); 
protected void Button1_Click(object sender, EventArgs e) 
{ // Show all the employees currently in the table 
    GridView1.DataSource = null; 
    GridView1.DataBind(); 
    using (var db = new AdventureWorks2012_DataEntities()) 
    { 

     List<Allemployees> result = new List<Allemployees>(); 
     var query = from b in db.Employees 
        join p in db.People on b.BusinessEntityID equals p.BusinessEntityID 
        orderby p.BusinessEntityID 
        select new 
        { 
         b.BusinessEntityID, 
         p.FirstName, 
         p.LastName 
        }; 

     foreach (var item in query) 
     { 
      Allemployees t1 = new Allemployees(); 
      t1.BusinessEntityId = item.BusinessEntityID; 
      t1.FirstName = item.FirstName; 
      t1.LastName = item.LastName; 
      result1.Add(t1); 
     } 
    GridView1.DataSource = result1; 
     GridView1.DataBind(); 
    } 
} 

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    GridView1.PageIndex = e.NewPageIndex; 
    GridView1.DataSource = result1; 
    GridView1.DataBind(); 
} 
} 

回答

0

更改GridView1_PageIndexChanging到這一點:

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    GridView gridview = (GridView)sender; 

    gridview.PageIndex = e.NewPageIndex; 

    Button1_Click(null, null); 

    gridview.DataBind(); 
} 

確保創建GridView1 AllowPaging爲true。

讓我知道結果。

+0

感謝它的工作,但我有另一個問題,我有25個按鈕?_Click(null,null);事件..現在解決它? – 2013-05-12 09:04:19

+0

請重新說出你的問題,對不起,我沒有得到它。 :( – jomsk1e 2013-05-12 09:07:09

+0

我的意思是我有25個更多的按鈕處理程序,我怎麼能遇到它 – 2013-05-12 12:02:44

0

原因是,當你點擊鏈接網頁提交和result1會沒有任何價值。如果你想保持數據回傳時,你必須使用視圖狀態,會話等。

Button1_ClickGridView1_PageIndexChanging方法

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    var result = (List<Allemployees>)Session["Data"]; 
    GridView1.PageIndex = e.NewPageIndex; 
    GridView1.DataSource = result; 
    GridView1.DataBind(); 
} 
+0

現在要使用它們嗎? – 2013-05-12 08:32:18

+0

@DanishAhmad我已更新我的答案,如何使用'Session'試試 – Damith 2013-05-12 09:11:01

0

刪除線 GridView1做如下

protected void Button1_Click(object sender, EventArgs e) 
{ 
    // your code 
    GridView1.DataBind(); // add below line after this line 
    Session["Data"] = result1; 
} 

。數據源=頁面更改功能中的result1。