GridView的两种数据绑定方式对分页的影响

 GridView支持自动分页,但是对数据源非ObjectDataSource 的支持不全。下面分别介绍ObjectDataSource 和非ObjectDataSource 绑定数据的注意点。

1. ObjectDataSource 

< asp:GridView  ID ="GridView1"  runat ="server"  AllowPaging ="True"  PageSize ="2"  DataSourceID ="ObjectDataSource1" >
        
</ asp:GridView >
        
< asp:ObjectDataSource  ID ="ObjectDataSource1"   TypeName ="DataSourceTest"  SelectMethod ="SelectTest"  runat ="server"   ></ asp:ObjectDataSource >
public   class  DataSourceTest
{

    
public static ICollection SelectTest()
    
{
        ArrayList al 
= new ArrayList(6);
        
for (int i = 0; i < 6; i++)
        
{
            al.Add(i);
        }

        
return al;
    }

}

public   partial   class  test : System.Web.UI.Page
{
    
protected void Page_Load(object sender, EventArgs e)
    
{
//使用TypeName时估计不是在当前应用程序域,故直接指定类型名会找不到,所以这里用其程序集全名
        Assembly aa = Assembly.GetExecutingAssembly();
        Type t 
= aa.GetType(this.ObjectDataSource1.TypeName);
        ObjectDataSource1.TypeName 
= t.AssemblyQualifiedName;
    }

    
}

2.  非ObjectDataSource 

非ObjectDataSource的数据源无法自动分页,必须捕捉其PageIndexChanging事件,在里边设定页码和重新绑定

< asp:GridView  ID ="GridView2"  runat ="server"  AllowPaging ="True"  PageSize ="2"  OnPageIndexChanging ="GridView2_PageIndexChanging" >
        
</ asp:GridView >

 

public   partial   class  test : System.Web.UI.Page
{
    
protected void GV2DataBind()
    
{
        ArrayList al 
= new ArrayList(6);
        
for (int i = 0; i < 6; i++)
        
{
            al.Add(i);
        
        GridView2.DataSource 
= al;
        GridView2.DataBind();
    }

    
protected void Page_Load(object sender, EventArgs e)
    
{
        
if (!IsPostBack)
        
{

            GV2DataBind();
        }

    }


    
protected void GridView2_PageIndexChanging(object sender, GridViewPageEventArgs e)
    
{
        GridView2.PageIndex 
= e.NewPageIndex;
        GV2DataBind();
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值