手动绑定SQLDataSource到GridView后分页的问题(转)
2012-07-22 20:31
302 查看
由于GridView的数据源是后台CS文件中代码绑定的。所以程序运行时,点击分页数后没有反应。解决办法如下:
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事件中重新绑定数据源才可以。但是这个办法有一个问题。就是每次切换页数的时候,都会从数据库中查询全部的数据,所以效率上会有问题。看大家有什么解决办法没有?
转载自: http://delphires.blog.hexun.com/13239567_d.html
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事件中重新绑定数据源才可以。但是这个办法有一个问题。就是每次切换页数的时候,都会从数据库中查询全部的数据,所以效率上会有问题。看大家有什么解决办法没有?
转载自: http://delphires.blog.hexun.com/13239567_d.html
相关文章推荐
- 手动绑定SQLDataSource到GridView后分页的问题
- 手动绑定数据到GridView后分页的问题
- Bug?用 DataSource 属性绑定的 GridView 的排序问题
- 不用sqldatasource,自己编写sql语句绑定gridview
- 参数绑定gridview的分页问题
- 无记录时显示gridview表头,并增加一行显示“没有记录”【绑定SqlDataSource控件时】
- 绑定SqlDataSource的Gridview字符串字段长度截取
- 绑定SqlDataSource的Gridview字符串字段长度截取
- GridView使用DataBind方法绑定数据时的分页问题[转]
- ObjectDataSource + Sql Server 2005 + GridView的自定义分页
- AspNetPager+GridView+SqlDataSource实现分页效果
- 关于Dropdownlist绑定GridView分页出错问题
- 绑定SqlDataSource的Gridview字符串字段长度截取(转)
- 《GridView使用DataBind方法绑定数据时的分页问题》
- gridview 实现排序 (在不是使用sqlDataSource控件,而在后台编码绑定gridview时,指定那个字段排序时使用。本例用了单层结构,可修改后应用于多层)
- 绑定SqlDataSource的Gridview字符串字段长度截取
- [讨论]当我采用动态sql绑定datagrid分页的时候,遇到的问题
- GridView中列的绑定与显示问题
- C#通过SQL语句查询结果分页不用GridView的实现
- ASP.NET 2.0:通过SqlDataSource绑定数据到普通控件