2010-05-05 30 views
0

我在USerControl中有一個DataGrid。不知怎的,傳呼不工作,分頁具有頁面適量,但點擊數不工作...它停留1頁這是我的網格:UserControl中的DataGrid

<asp:DataGrid ID="DG_Grid" runat="server" AllowPaging="True" PageSize="10" EnableViewState="True" 
      AllowSorting="False" DataKeyField="DUEDATE" OnItemDataBound="DG_Grid_ItemDataBound" OnItemCommand="DG_Grid_ItemCommand"> 

想法嗎?

回答

0

你是否處理過PageIndexChanged事件?有關更多詳細信息,請參閱here

+0

是的,我照顧它... – grady 2010-05-05 12:31:48

0

Usercontrols的Datagrid綁定在Page或Usercontrol本身中嗎?我認爲你將它們綁定在頁面中,並且你在頁面中對它們進行排序。所以你必須從UserControl中引發PageIndexChanged事件並在頁面中處理它。

這個exmaple是用GridView的,但對於DataGrid來說它是一樣的。

在用戶控件定義您在頁面處理事件:

Public Event GridPageChanged(ByVal grid As GridView) 

    Private Sub GridView1_PageIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.PageIndexChanged 
     RaiseEvent GridPageChanged(Me.GridView1) 
    End Sub 

現在,您可以捕捉用戶控件的GridPageChanged在你的頁面,並進行排序。

+0

它在UserControl本身中的綁定。 – grady 2010-05-05 12:52:15

+0

你只在第一次做一個DataBind(!Page.IsPostBack)?! 因爲在數據綁定網格時,pageindexchanged事件不會觸發。 – 2010-05-05 13:09:29

+0

是的,我只綁定數據源if(!ispostback)。另一方面,綁定它每次都不會幫助。 – grady 2010-05-05 13:46:24

0

使用這樣的:

private void FillGrid(int aPageNumber) 
    { 
     //Insert you code here 


     DG_Grid.DataSource = _ds.Tables[0].DefaultView; 
     DG_Grid.PageIndex = aPageNumber; 
     DG_Grid.DataBind(); 
    } 

而這個電話網

protected void DG_Grid_PageIndexChanging(object sender, GridViewPageEventArgs e) 
    { 
     FillGrid(e.NewPageIndex); 
    } 

的此事件的負載調用後:

FillGrid(0);