2010-05-05 33 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);