手动绑定数据到GridView后分页的问题

由于GridView的数据源是后台CS文件中代码绑定的。所以程序运行时,点击分页数后没有反应。解决办法如下:

 

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page
{
SqlDataSource source
= new SqlDataSource();


protected void Page_Load( object sender, EventArgs e)
{

}

private void DBind()
{
SqlConnection conn
= new SqlConnection();
conn.ConnectionString
= ConfigurationManager.ConnectionStrings[ " TransportConnectionString " ].ConnectionString;
source.ConnectionString
= ConfigurationManager.ConnectionStrings[ " TransportConnectionString " ].ConnectionString;
string sql = " SELECT * from Customer where id<>'' " ;

if ( this .客户名称.Text != "" )
{
sql
= sql + " and 客户编码 LIKE '% " + this .客户名称.Text + " %' " ;
}
source.SelectCommand
= sql;
GridView1.DataSourceID
= "" ;
GridView1.DataSource
= "" ;
GridView1.DataSource
= source;
GridView1.DataBind();
}


protected void SearchButton_Click( object sender, EventArgs e)
{
SqlConnection conn
= new SqlConnection();
conn.ConnectionString
= ConfigurationManager.ConnectionStrings[ " TransportConnectionString " ].ConnectionString;
source.ConnectionString
= ConfigurationManager.ConnectionStrings[ " TransportConnectionString " ].ConnectionString;
string sql = " SELECT * from Customer where id<>'' " ;

if ( this .客户名称.Text != "" )
{
sql
= sql + " and 客户编码 LIKE '% " + this .客户名称.Text + " %' " ;
}
source.SelectCommand
= sql;
GridView1.DataSourceID
= "" ;
GridView1.DataSource
= "" ;
GridView1.DataSource
= source;
GridView1.DataBind();
}

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

需要注意的是,我增加了一个方法,和绑定事件按钮是一样的。需要在PageIndexChanging事件中重新绑定数据源才可以。但是这个办法有一个问题。就是每次切换页数的时候,都会从数据库中查询全部的数据,所以效率上会有问题。

转载于:https://www.cnblogs.com/402088881/archive/2010/09/17/1829565.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值