2011-01-26 57 views
5

Mặc dù, các câu hỏi bằng cách nào đó tương tự như thế này đã được yêu cầu một số lần, nhưng câu hỏi vẫn chưa được giải quyết. Đây là câu hỏi: Tôi có một số GridView được chứa trong một vùng chứa tab AJAX kiểm soát chính nó nằm trong một số UpdatePanel. Gridview hoạt động tuyệt vời và các phương pháp tương ứng của nó được kích hoạt chính xác, nhưng khi tôi bật paging (ví dụ) sau khi tôi nhấp vào trang 2, hãy tự ẩn mình GridView. đây là PageIndexChanging() phương pháp của tôi:Phân trang ASP.net Gridview không hoạt động bên trong UpdatePanel

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

Tại sao phân trang gây GridView ngừng làm việc một cách chính xác? Tôi có thể làm gì?

+0

http://forums.asp.net/t/1091963.aspx - Giải pháp có thể có. –

Trả lời

6

Giải pháp là bạn nên nạp các tập dữ liệu được sử dụng để cư GridView, mỗi lần chỉ số trang của bạn được thay đổi. Bằng cách này, bạn có thể đảm bảo rằng trong mỗi bài đăng riêng biệt đã được kích hoạt bởi số trang xem lưới, kết quả sẽ được điền.

3

Tiếp tục nghiên cứu:

http://msdn.microsoft.com/en-us/library/cc295545.aspx

Controls mà không tương thích với UpdatePanel điều khiển

Các điều khiển ASP.NET sau đây là không tương thích với bản cập nhật phần-page, và do đó không được thiết kế để hoạt động bên trong một điều khiển UpdatePanel:

  • Điều khiển GridView và DetailsView khi thuộc tính EnableSortingAndPagingCallbacks của chúng được đặt thành true. Mặc định này sai.
3

Tôi vừa thử mã trên. Tôi đã có cùng một vấn đề và bây giờ nó đang làm việc tốt.

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    GridView1.PageIndex = e.NewPageIndex;   
    GridView1.DataBind(); 
    // UpdatePanel2.Update(); <-- Remove this line from your code. 
} 

Tôi có GridView bên trong bảng cập nhật. Bạn có viết sự kiện PageIndexChanging trong tệp .aspx của bạn không?

Hy vọng điều này sẽ hữu ích.

-1

Để thực hiện điều đó, bạn phải đặt lại nguồn dữ liệu trong sự kiện thay đổi chỉ mục trang. Hiệu suất sẽ thấp hơn nhưng đó là cách bạn có thể làm cho nó hoạt động.

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    GridView1.DataSource = ;//Set again the datasource 
    GridView1.PageIndex = e.NewPageIndex; 
    GridView1.DataBind(); 
    UpdatePanel2.Update(); 
} 
+0

@Farshid đã trả lời câu hỏi này. – AsifAli72090

Các vấn đề liên quan