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

  • 相关阅读:
    Web Application Penetration Testing Local File Inclusion (LFI) Testing Techniques
    [Reproduced works]MongoDB Unauthorized Access Vulnerability
    PHP build notes
    两个坑-Linux下Network-Manager有线未托管-DNS resolv.conf文件开机被清空
    OS命令注入中的空格
    Honeywords项目——检查密码是否被破解的一种简单方法
    如何判断自己的VPS是那种虚拟技术实现的
    reGeorg v1.0内网流量转发
    配置OWASP的ModSecurity规则
    python 2.6 与 2.4 区别
  • 原文地址:https://www.cnblogs.com/puzi0315/p/2604002.html
Copyright © 2011-2022 走看看