• 手动绑定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

  • 相关阅读:
    基于u盘身份验证
    新的一年开始了~!
    asp.net的条形码
    windows phone (21) Grid元素的Background和Clip
    windows phone (19) 深入了解TextBlock
    windows phone (25) Canvas元素B
    windows phone (20) Image元素
    windows phone (22) 隐藏元素
    windows phone (26) ApplicationBar应用程序栏
    windows phone (27) 基础Button
  • 原文地址:https://www.cnblogs.com/puzi0315/p/2604002.html
Copyright © 2020-2023  润新知