分页及三级联动项目

来源:互联网 发布:临床医学生必备软件 编辑:程序博客网 时间:2024/06/08 00:01

 

分页前台代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="WebApplication1.WebForm2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <table>
        <tr>
            <td>
                <asp:TextBox ID="txtKey" runat="server"></asp:TextBox>
                <asp:ImageButton ID="btnQuery" Width="30" Height="30" ImageUrl="images/Penguins.jpg"
                    runat="server" OnClick="btnQuery_Click" /><asp:Label ID="lbinfo" runat="server" Text=""></asp:Label>
            </td>
        </tr>
        <tr>
            <td>
                <div id="divResult" runat="server" />
            </td>
        </tr>
        <tr>
            <td>
                <asp:LinkButton ID="btnFirst" runat="server" onclick="btnFirst_Click">第一页</asp:LinkButton>
                <asp:LinkButton ID="btnPre" runat="server" onclick="btnPre_Click">上一页</asp:LinkButton>
                <asp:LinkButton ID="btnNext" runat="server" onclick="btnNext_Click">下一页</asp:LinkButton>
                <asp:LinkButton ID="btnLast" runat="server" onclick="btnLast_Click">最后一页</asp:LinkButton>
                <asp:TextBox ID="txtpageindex" runat="server"></asp:TextBox>
                <asp:Button ID="btnGo" runat="server" Text="GO" onclick="btnGo_Click" />
                <asp:Label ID="lbpageindex" runat="server" Text=""></asp:Label>
            </td>
        </tr>
    </table>
    </form>
</body>
</html>

 

分布后台代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Text;
using System.Data;

namespace WebApplication1
{
    public partial class WebForm2 : System.Web.UI.Page
    {
        int pagesize = 3;
        //int pagelastindex = 0;
        //int pageindex = 1;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack==false)
            {
                //ViewState虽然是声明在函数内部,看似是局部变量,但是在类中的其他函数中也可以直接使用

                ViewState["pageindex"] = 1;
                GetCount();
                LoadData();
            }
        }
        //获取总的页数,也就是最后一页的页码
        private void GetCount()
        {
            string strcon = @"Data Source=YHB-PC;Initial Catalog=News;Persist Security Info=True;User ID=sa;Password=yhb@163";
            SqlConnection conn = new SqlConnection(strcon);
            SqlCommand cmd = conn.CreateCommand();
            cmd.CommandText = "SELECT COUNT(*) FROM T_News WHERE NewsTitle LIKE @newskey OR NewsContent LIKE @newskey";
            cmd.Parameters.AddWithValue("@newskey","%"+txtKey.Text+"%");
            conn.Open();
            int totalcount = Convert.ToInt32(cmd.ExecuteScalar());
            if (totalcount % pagesize == 0)
            {
                ViewState["pagelastindex"] = totalcount / pagesize;
            }
            else
            {
                ViewState["pagelastindex"] = totalcount / pagesize + 1;
            }
        }
        //加载数据
        private void LoadData()
        {
            string strcon = @"Data Source=YHB-PC;Initial Catalog=News;Persist Security Info=True;User ID=sa;Password=yhb@163";
            SqlConnection conn = new SqlConnection(strcon);
            SqlCommand cmd = conn.CreateCommand();
            //cmd.CommandText = "SELECT TOP(@pagesize) * FROM T_News WHERE(NewsTitle LIKE @newskey OR NewsContent LIKE @newskey) AND Id NOT IN(SELECT TOP ((@pageindex-1)*@pagesize) Id FROM T_News WHERE NewsTitle LIKE @newskey OR NewsContent LIKE @newskey ORDER BY Id )ORDER BY Id";
            //cmd.CommandText = "SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY Id) AS rownumber, NewsTitle,NewsContent,CreateTime FROM T_News WHERE NewsTitle LIKE @newskey OR NewsContent LIKE @newskey) A WHERE A.rownumber>(@pageindex-1)*@pagesize AND A.rownumber<=@pageindex*@pagesize";

            //使用存储过程
            cmd.CommandText = "Pro_GetNewsByTitleAndCount";
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@pageindex", Convert.ToInt32(ViewState["pageindex"]));
            cmd.Parameters.AddWithValue("@pagesize", pagesize);
            cmd.Parameters.AddWithValue("@newskey","%"+txtKey.Text+"%");
            SqlDataAdapter adapter = new SqlDataAdapter(cmd);
            DataTable dt = new DataTable();
            adapter.Fill(dt);
           
            //显示当前页码和总页码
            lbpageindex.Text = ViewState["pageindex"].ToString()+"/"+ViewState["pagelastindex"].ToString()+"页";

            //将当前页码赋给页码文本框
            txtpageindex.Text = ViewState["pageindex"].ToString();
            cmd.Dispose();
            conn.Dispose();
            #region 字符串拼接
            StringBuilder sb1 = new StringBuilder();
            sb1.Append("<table border=2>");
            sb1.Append("<tr><td>标题</td><td>内容</td><td>创建时间</td></tr>");
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                sb1.Append("<tr>");
                sb1.Append("<td>" + dt.Rows[i]["NewsTitle"].ToString() + "</td>");
                sb1.Append("<td>" + dt.Rows[i]["NewsContent"].ToString() + "</td>");
                sb1.Append("<td>" + dt.Rows[i]["CreateTime"].ToString() + "</td>");
                sb1.Append("</tr>");
            }

            sb1.Append("</table>");
            #endregion

            divResult.InnerHtml = sb1.ToString();
        }
        //搜索
        protected void btnQuery_Click(object sender, ImageClickEventArgs e)
        {
            ViewState["pageindex"] = 1;
            GetCount();
            LoadData();
        }

        protected void btnFirst_Click(object sender, EventArgs e)
        {
            ViewState["pageindex"] = 1;
            LoadData();
        }

        protected void btnPre_Click(object sender, EventArgs e)
        {
            int pageindex = Convert.ToInt32(ViewState["pageindex"]);
            if (pageindex > 1)
            {
                pageindex--;
                ViewState["pageindex"] = pageindex;
                //放到里边,当pageindex=1的时候,也就是当已经到达第一页的时候,用户如果重复点击“上一页”,不会再次去数据库里查询第一页的数据,而是使用ViewState中存储的第一页的数据
                LoadData();
            }
        }
        //下一页
        protected void btnNext_Click(object sender, EventArgs e)
        {
            int pageindex = Convert.ToInt32(ViewState["pageindex"]);
            if (pageindex < Convert.ToInt32(ViewState["pagelastindex"]))
            {
                pageindex++;
                ViewState["pageindex"] = pageindex;
                LoadData();
            }
        }

        protected void btnLast_Click(object sender, EventArgs e)
        {
            ViewState["pageindex"] = ViewState["pagelastindex"];
            LoadData();
        }

        protected void btnGo_Click(object sender, EventArgs e)
        {
            int numb=0;
            if (int.TryParse(txtpageindex.Text, out numb)==true)
            {
                if (numb>=1 && numb<=Convert.ToInt32(ViewState["pagelastindex"]))
                {
                    ViewState["pageindex"] = numb;
                    LoadData();
                }
            }           
        }
    }
}

 

 

 

三级联动前台代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebDropdownlist.aspx.cs" Inherits="WebApplication1.WebDropdownlist" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <table><tr><td>
        省<asp:DropDownList ID="ddlProvince" runat="server"
            AutoPostBack="True" onselectedindexchanged="ddlProvince_SelectedIndexChanged" Width="150px">
       
        </asp:DropDownList>
        </td><td>
        市<asp:DropDownList ID="ddlCity" runat="server"
                AutoPostBack="True" onselectedindexchanged="ddlCity_SelectedIndexChanged" Width="150px">
        </asp:DropDownList>
        </td><td>
        区县<asp:DropDownList ID="ddlArear" runat="server" Width="150px">
        </asp:DropDownList>
        </td></tr></table>
    </div>
    </form>
</body>
</html>

 

 

后台代码:

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;

namespace WebApplication1
{
    public partial class WebDropdownlist : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                GetProvince();
            }
        }
        private DataTable LoadData(string id)
        {
            string strcon = @"Data Source=YHB-PC;Initial Catalog=News;Persist Security Info=True;User ID=sa;Password=yhb@163";
            SqlConnection conn = new SqlConnection(strcon);
            SqlCommand cmd = conn.CreateCommand();
            cmd.CommandText = "SELECT A_Id,A_Name FROM T_Arear WHERE A_ParentId=@parentid ORDER BY A_Id";
            cmd.Parameters.AddWithValue("@parentid", id);
            SqlDataAdapter adapter = new SqlDataAdapter(cmd);
            DataTable dt = new DataTable();
            adapter.Fill(dt);
            cmd.Dispose();
            conn.Dispose();
            return dt;
        }
        private void GetProvince()
        {
            DataTable dt = LoadData("0");
            this.ddlProvince.DataSource = dt;
            //指定下拉列表要显示的字段的值
            this.ddlProvince.DataTextField = "A_Name";
            //指定下拉列表的value属性要绑定的字段的值
            this.ddlProvince.DataValueField = "A_Id";
            this.ddlProvince.DataBind();
            //插入默认选中项
            ListItem item = new ListItem("---请选择---", "0");
            //this.ddlProvince.Items.Add(item);
            this.ddlProvince.Items.Insert(0, item);

        }

        private int Sum(int x, int y)
        {
            int num = x + y;
            return num;
        }

        protected void ddlProvince_SelectedIndexChanged(object sender, EventArgs e)
        {
           
            string id = this.ddlProvince.SelectedItem.Value;
            if (id != "0")
            {
                DataTable dt = LoadData(id);

                this.ddlCity.DataSource = dt;
                //指定下拉列表要显示的字段的值
                this.ddlCity.DataTextField = "A_Name";
                //指定下拉列表的value属性要绑定的字段的值
                this.ddlCity.DataValueField = "A_Id";
                this.ddlCity.DataBind();

                //绑定默认显示的市下面的区县
                string selectid = this.ddlCity.SelectedItem.Value;
                DataTable dt1 = LoadData(selectid);
                this.ddlArear.DataSource = dt1;
                //指定下拉列表要显示的字段的值
                this.ddlArear.DataTextField = "A_Name";
                //指定下拉列表的value属性要绑定的字段的值
                this.ddlArear.DataValueField = "A_Id";
                this.ddlArear.DataBind();
            }
            else
            {
                ddlCity.Items.Clear();
                ddlArear.Items.Clear();
            }
            //Response.Write(id);
           

        }

        protected void ddlCity_SelectedIndexChanged(object sender, EventArgs e)
        {
            string id = this.ddlCity.SelectedItem.Value;
            DataTable dt = LoadData(id);
            this.ddlArear.DataSource = dt;
            //指定下拉列表要显示的字段的值
            this.ddlArear.DataTextField = "A_Name";
            //指定下拉列表的value属性要绑定的字段的值
            this.ddlArear.DataValueField = "A_Id";
            this.ddlArear.DataBind();
        }
    }
}

 

原创粉丝点击