weibform中Application、ViewState对象和分页
Application:
全局公共变量组
存放位置:服务器
特点:所有访问用户都是访问同一个变量,但只要服务器不停机,变量一直存在于服务器的内存中,不要使用循环大量的创建Application对象,可能会造
成服务器崩溃。
生命周期:永久,只要服务器不停机
使用方法:与Session一样
ViewState:
用于记录页面的一些状态,就像人的病例,比如当执行提交后,网页可以保留一些已经输入的文本框而非清空
webform中微软已经给我们做好了这个对象,自带此功能。
webform中一共6个内置对象:Request Response Session Cookie Application ViewState
分页:
为了用户查看以及页面加载速度,查看大量数据时需要进行分页操作,
主要通过查询语句以及各种判断来实现
例:分页展示车辆信息
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div> <asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate> <table style="width: 100%; text-align: center; background-color: navy;">
<thead>
<tr style="color: white;">
<%--<td>ids</td>--%>
<td>code</td>
<td>name</td>
<td>brand</td>
<td>time</td>
<td>oil</td>
<td>powers</td>
<td>exhaust</td>
<td>price</td>
<td>pic</td>
</tr>
</thead>
<tbody>
</HeaderTemplate> <ItemTemplate> <tr style="background-color: white;">
<%--<td><%#Eval("ids") %></td>--%>
<td><%#Eval("code") %></td>
<td><%#Eval("name") %></td>
<td><%#Eval("brand") %></td>
<td><%#Eval("time") %></td>
<td><%#Eval("oil") %></td>
<td><%#Eval("powers") %></td>
<td><%#Eval("exhaust") %></td>
<td><%#Eval("price") %></td>
<td><%#Eval("pic") %></td>
</tr> </ItemTemplate>
<FooterTemplate>
</tbody>
</table>
</FooterTemplate>
</asp:Repeater> 当前第【<asp:Label ID="Label_NowPage" runat="server" Text="Label"></asp:Label>】页
共【<asp:Label ID="Label_MaxPage" runat="server" Text="Label"></asp:Label>】页
<asp:LinkButton ID="btn_first" runat="server">首页</asp:LinkButton>
<asp:LinkButton ID="btn_prev" runat="server">上一页</asp:LinkButton>
<asp:LinkButton ID="btn_next" runat="server">下一页</asp:LinkButton>
<asp:LinkButton ID="btn_last" runat="server">末页</asp:LinkButton>
<asp:DropDownList ID="DropDownList1" AutoPostBack="true" runat="server"></asp:DropDownList>
<asp:Button ID="Button1" runat="server" Text="跳转" /> </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; public partial class _Default : System.Web.UI.Page
{
int Count = ; //每页显示条数 protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Label_NowPage.Text = "";
Label_MaxPage.Text = MaxPageNumber().ToString();
btn_prev.Enabled = false;
btn_first.Enabled = false; Repeater1.DataSource = new CarData().Select(Count, );
Repeater1.DataBind(); int max = MaxPageNumber();
DropDownList1.Items.Clear();
for (int i = ; i <= max; i++)
{
DropDownList1.Items.Add(new ListItem(i.ToString(), i.ToString()));
}
} DropDownList1.SelectedIndexChanged += Button1_Click;
btn_first.Click += btn_first_Click;//首页按钮
btn_prev.Click += btn_prev_Click;
btn_next.Click += btn_next_Click;
btn_last.Click += btn_last_Click;
Button1.Click += Button1_Click;
} void Button1_Click(object sender, EventArgs e)
{
//获取当前页,计算要看的下一页的页号
int nextPage = Convert.ToInt32(DropDownList1.SelectedValue); //按照获取的页数绑定相应的数据
Repeater1.DataSource = new CarData().Select(Count, nextPage);
Repeater1.DataBind(); //修改显示页数
Label_NowPage.Text = nextPage.ToString(); if (nextPage == )
{
btn_first.Enabled = false;
btn_prev.Enabled = false;
btn_next.Enabled = true;
btn_last.Enabled = true;
}
else if (nextPage == MaxPageNumber())
{
btn_first.Enabled = true;
btn_prev.Enabled = true;
btn_next.Enabled = false;
btn_last.Enabled = false;
}
else
{
btn_first.Enabled = true;
btn_prev.Enabled = true;
btn_next.Enabled = true;
btn_last.Enabled = true;
}
} void btn_first_Click(object sender, EventArgs e)
{
//按照获取的页数绑定相应的数据
Repeater1.DataSource = new CarData().Select(Count, );
Repeater1.DataBind(); //修改显示页数
Label_NowPage.Text = ""; btn_first.Enabled = false;
btn_prev.Enabled = false;
btn_next.Enabled = true;
btn_last.Enabled = true;
} void btn_prev_Click(object sender, EventArgs e)
{
//获取当前页,计算要看的下一页的页号
int nextPage = Convert.ToInt32(Label_NowPage.Text) - ; //按照获取的页数绑定相应的数据
Repeater1.DataSource = new CarData().Select(Count, nextPage);
Repeater1.DataBind(); //修改显示页数
Label_NowPage.Text = nextPage.ToString(); if (nextPage <= )
{
btn_first.Enabled = false;
btn_prev.Enabled = false;
}
btn_next.Enabled = true;
btn_last.Enabled = true;
} void btn_next_Click(object sender, EventArgs e)
{
//获取当前页,计算要看的下一页的页号
int nextPage = Convert.ToInt32(Label_NowPage.Text) + ; ////判断是否有下一页
//if (nextPage > MaxPageNumber())
//{
// return;
//} //按照获取的页数绑定相应的数据
Repeater1.DataSource = new CarData().Select(Count, nextPage);
Repeater1.DataBind(); //修改显示页数
Label_NowPage.Text = nextPage.ToString(); if (nextPage >= MaxPageNumber())
{
btn_next.Enabled = false;
btn_last.Enabled = false;
}
btn_prev.Enabled = true;
btn_first.Enabled = true;
} void btn_last_Click(object sender, EventArgs e)
{
int hehe = MaxPageNumber(); //按照获取的页数绑定相应的数据
Repeater1.DataSource = new CarData().Select(Count, hehe);
Repeater1.DataBind(); //修改显示页数
Label_NowPage.Text = hehe.ToString(); btn_prev.Enabled = true;
btn_first.Enabled = true;
btn_next.Enabled = false;
btn_last.Enabled = false;
} public int MaxPageNumber()
{
List<Car> clist = new CarData().Select(); double end2 = Math.Ceiling(clist.Count / (Count * 1.0)); int end = Convert.ToInt32(end2); return end;
} }
后台
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient; /// <summary>
/// CarData 的摘要说明
/// </summary>
public class CarData
{
SqlConnection conn = null;
SqlCommand cmd = null;
public CarData()
{
conn = new SqlConnection("server=.;database=mydb;user=sa;pwd=123");
cmd = conn.CreateCommand();
} public List<Car> Select()
{
List<Car> clist = new List<Car>(); cmd.CommandText = "select *from car";
conn.Open();
SqlDataReader dr = cmd.ExecuteReader(); if (dr.HasRows)
{
while (dr.Read())
{
Car c = new Car();
//c.Ids = Convert.ToInt32(dr[0]);
c.Code = dr[].ToString();
c.Name = dr[].ToString();
c.Brand = dr[].ToString();
c.Time = Convert.ToDateTime(dr[]);
c.Oil = Convert.ToDecimal(dr[]);
c.Powers = Convert.ToInt32(dr[]);
c.Exhaust = Convert.ToInt32(dr[]);
c.Price = Convert.ToDecimal(dr[]);
c.Pic = dr[].ToString(); clist.Add(c);
}
} conn.Close();
return clist;
} public List<Car> Select(int count, int NowPage)
{
List<Car> clist = new List<Car>(); cmd.CommandText = "select top " + count + " *from car where Code not in(select top " + ((NowPage - ) * count) + " Code from car)";
conn.Open();
SqlDataReader dr = cmd.ExecuteReader(); if (dr.HasRows)
{
while (dr.Read())
{
Car c = new Car();
//c.Ids = Convert.ToInt32(dr[0]);
c.Code = dr[].ToString();
c.Name = dr[].ToString();
c.Brand = dr[].ToString();
c.Time = Convert.ToDateTime(dr[]);
c.Oil = Convert.ToDecimal(dr[]);
c.Powers = Convert.ToInt32(dr[]);
c.Exhaust = Convert.ToInt32(dr[]);
c.Price = Convert.ToDecimal(dr[]);
c.Pic = dr[].ToString(); clist.Add(c);
}
} conn.Close();
return clist;
} }
数据访问类

另:
常规表单提交:
普通HTML页面,在form表单中action属性可以设置提交到哪个服务端 method属性可以选择提交方式
<form action="Default4.aspx" method="get"></form>
可以通过此方法将纯HTML页面中的数据提交到某个服务端,再通过服务端对数据进行操作。
weibform中Application、ViewState对象和分页的更多相关文章
- Application对象、ViewState对象、分页展示--2017年1月4日
Application对象 存储 Application 变量 Application["application名称"] = "application的值"; ...
- WebForm Application Viewstate 以及分页(功能性的知识点)
Application: 全局公共变量组 存放位置:服务器 特点:所有访问用户都是访问同一个变量,但只要服务器不停机,变量一直存在于服务器的内存中,不要使用循环大量的创建Application对象,可 ...
- ASP.NET中application对象的用法
一.Application对象的理解 Application对象在实际网络开发中的用途就是记录整个网络的信息,如上线人数.在线名单.意见调查和网上选举等.在给定的应用程序的多有用户之间共享信息,并在服 ...
- ASP.NET中application对象
ASP.NET中application对象的使用. Application对象的应用 1.使用Application对象保存信息 (1).使用Application对象保存信息 Applicat ...
- ASP.NET中application对象的用法(面试题)
ASP.NET中application对象的用法 本文导读:Application对象是HttpApplicationState类的一个实例,Application状态是整个应用程序全局的.Appli ...
- 分页技巧__在项目中使用QueryHelper辅助对象实现分页效果
分页技巧__在项目中使用QueryHelper辅助对象实现分页效果 QueryHelper 用于辅助拼接HQL语句 addCondition("t.type=?", "精 ...
- 转:asp.net 中的viewstate
概述 ViewState是一个被误解很深的动物了.我希望通过此文章来澄清人们对ViewState的一些错误认识.为了达到这个目的,我决定从头到尾详细的描述一下整个ViewState的工作机制,其中我会 ...
- 全局对象Application的使用,以及如何在任何地方得到Application全局对象
Application和Activity,Service一样是android框架的一个系统组件,当android程序启动时系统会创建一个application对象,用来存储系统的一些信息.通常我们是不 ...
- SpringBoot集成PageHelper时出现“在系统中发现了多个分页插件,请检查系统配置!”
近日在项目中使用SpringBoot集成PageHelper后,跑单元测试时出现了"在系统中发现了多个分页插件,请检查系统配置!"这个问题. 如下图所示: org.mybatis. ...
随机推荐
- asp.net三层架构 及其中使用泛型获取实体数据介绍
asp.net中使用泛型获取实体数据可以发挥更高的效率,代码简洁方便,本例采用三层架构.首先在model层中定义StuInfo实体,然后在 DAL层的SQLHelper数据操作类中定义list< ...
- 取代 Windows Search
windows自带的搜索工具太难用了,总是在你急需的时候提示还没有建立索引,眼皮底下的文件都找不到. 1. everything 适合快速搜索文件名 优点是速度快,非常快,几乎是瞬间就建立好了索引. ...
- 简单的 MessageBox
有时候我们只是想实现一个消息框,给用户一些文字提醒,就像javascript的alert那样.没必要因此动用那些庞大的GUI库,下面是几种轻快的实现方法. 1. ctypes import ctype ...
- linux centos 6.5下安装nodejs
1.将文件下载或拷贝至/usr/local/src目录下,可使用xshell工具上传文件 2.解压缩文件: tar xvf /usr/local/src/node-v6.9.2-linux-x64 3 ...
- 反编译apk
一.反编译Apk得到Java源代码 首先要下载两个工具:dex2jar和JD-GUI 前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源 ...
- 菜鸟笔记:javascript基础之表达式和运算符
4.1 原始表达式 原始表达式是最简单的表达式~它不再包含其他表达式.它包含:直接量(程序中直接显示出来的数据值.)常量(程序中不会被修改的量)变量. 4.2 对象和数组的初始化表达式 对象和数组初始 ...
- C# 调用webservice 几种办法(转载)
原文地址: http://www.cnblogs.com/eagle1986/archive/2012/09/03/2669699.html //=========================== ...
- ajax待总结项
1.get与post请求的区别 get请求调用send方法发送数据时,会忽略传入的数据 2.post请求的三种方式区别 1.form表单 2.ajax 3.ajax + FormData 表格绘制,代 ...
- Windows Server 2012 在桌面上显示”我的电脑”图标
1.本地方式如果是在Windows Server 2012本地控制台下,直接按Win(键盘上的微软徽标键)+R,输入: rundll32.exe shell32.dll,Control_RunDLL ...
- 线性表Linearlist
顺序存储,链式存储,索引存储,散列存储 基本运算 SLIST 1.置空表 void SetNull(&L) 2.求长度 int Length(L) 3.取元素 ...