zoukankan      html  css  js  c++  java
  • 手动绑定SQLDataSource到GridView后分页的问题(转)

    由于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

  • 相关阅读:
    告别零码软件
    win+mingw+libxml2试用笔记
    beacon with java 1.7 on fedora
    mininet指令详解
    java Socket完美实例
    gnome3 下 qt 应用极其丑陋的解决方案
    org.apache.log4j Class Level
    Mac如何修改文本文件编码
    unity性能优化相关
    平面图判定
  • 原文地址:https://www.cnblogs.com/puzi0315/p/2604002.html
Copyright © 2011-2022 走看看