分页前台代码:
<%@ 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" οnclick="btnFirst_Click">第一页</asp:LinkButton>
<asp:LinkButton ID="btnPre" runat="server" οnclick="btnPre_Click">上一页</asp:LinkButton>
<asp:LinkButton ID="btnNext" runat="server" οnclick="btnNext_Click">下一页</asp:LinkButton>
<asp:LinkButton ID="btnLast" runat="server" οnclick="btnLast_Click">最后一页</asp:LinkButton>
<asp:TextBox ID="txtpageindex" runat="server"></asp:TextBox>
<asp:Button ID="btnGo" runat="server" Text="GO" οnclick="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();
}
}
}