Asp.net 单击父页面中的按钮以使usercontrol';s gridview更改为不同的页面索引

Asp.net 单击父页面中的按钮以使usercontrol';s gridview更改为不同的页面索引,asp.net,events,user-controls,Asp.net,Events,User Controls,我有一个按钮,一个在页面中包含gridview的用户控件 如何单击页面中的按钮并使其用户控件的gridview更改为某个页面索引?在用户控件中提供一个公共方法(例如,GotoPage(int index))。然后,您可以通过MyControl.GotoPage(111)从页面更改它 GotoPage可以实现为: public void GotoPage(int index) { //side-note: you can call BindGrid(e.NewPageIndex) also

我有一个按钮,一个在页面中包含gridview的用户控件


如何单击页面中的按钮并使其用户控件的gridview更改为某个页面索引?

在用户控件中提供一个公共方法(例如,GotoPage(int index))。然后,您可以通过
MyControl.GotoPage(111)从页面更改它

GotoPage
可以实现为:

public void GotoPage(int index)
{
    //side-note: you can call BindGrid(e.NewPageIndex) also from GridView's PageIndexChanging
    BindGrid(index);
}
private void BindGrid(int newPageIndex)
{
    // set it's DataSource
    var pageIndex = newPageIndex < 0 || newPageIndex >= GridView1.PageCount ? 0 : newPageIndex;
    GridView1.PageIndex = pageIndex;
    // DataBind it
}
BindGrid
可以实现为:

public void GotoPage(int index)
{
    //side-note: you can call BindGrid(e.NewPageIndex) also from GridView's PageIndexChanging
    BindGrid(index);
}
private void BindGrid(int newPageIndex)
{
    // set it's DataSource
    var pageIndex = newPageIndex < 0 || newPageIndex >= GridView1.PageCount ? 0 : newPageIndex;
    GridView1.PageIndex = pageIndex;
    // DataBind it
}
private void BindGrid(int newPageIndex)
{
//设置它的数据源
var pageIndex=newPageIndex<0 | | newPageIndex>=GridView1.PageCount?0:newPageIndex;
GridView1.PageIndex=PageIndex;
//数据绑定
}

在用户控件中提供一个公共方法(例如,GotoPage(int index)
)。然后,您可以通过
MyControl.GotoPage(111)从页面更改它。我结合了这两种方法:在gotopage中,首先将gridview的pageindex设置为参数中的索引,然后再次绑定gridview,就是这样。@Meidi:当然也可以。我总是尽量少封装和提供公共方法。否则,使用用户控件硬链接页面会有很大的危险。