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>】页
&nbsp;&nbsp;共【<asp:Label ID="Label_MaxPage" runat="server" Text="Label"></asp:Label>】页&nbsp;&nbsp;
<asp:LinkButton ID="btn_first" runat="server">首页</asp:LinkButton>
&nbsp;&nbsp;
<asp:LinkButton ID="btn_prev" runat="server">上一页</asp:LinkButton>
&nbsp;&nbsp;
<asp:LinkButton ID="btn_next" runat="server">下一页</asp:LinkButton>
&nbsp;&nbsp;
<asp:LinkButton ID="btn_last" runat="server">末页</asp:LinkButton>
&nbsp;&nbsp;
<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对象和分页的更多相关文章

  1. Application对象、ViewState对象、分页展示--2017年1月4日

    Application对象 存储 Application 变量  Application["application名称"] = "application的值"; ...

  2. WebForm Application Viewstate 以及分页(功能性的知识点)

    Application: 全局公共变量组 存放位置:服务器 特点:所有访问用户都是访问同一个变量,但只要服务器不停机,变量一直存在于服务器的内存中,不要使用循环大量的创建Application对象,可 ...

  3. ASP.NET中application对象的用法

    一.Application对象的理解 Application对象在实际网络开发中的用途就是记录整个网络的信息,如上线人数.在线名单.意见调查和网上选举等.在给定的应用程序的多有用户之间共享信息,并在服 ...

  4. ASP.NET中application对象

    ASP.NET中application对象的使用. Application对象的应用  1.使用Application对象保存信息  (1).使用Application对象保存信息  Applicat ...

  5. ASP.NET中application对象的用法(面试题)

    ASP.NET中application对象的用法 本文导读:Application对象是HttpApplicationState类的一个实例,Application状态是整个应用程序全局的.Appli ...

  6. 分页技巧__在项目中使用QueryHelper辅助对象实现分页效果

    分页技巧__在项目中使用QueryHelper辅助对象实现分页效果 QueryHelper 用于辅助拼接HQL语句 addCondition("t.type=?", "精 ...

  7. 转:asp.net 中的viewstate

    概述 ViewState是一个被误解很深的动物了.我希望通过此文章来澄清人们对ViewState的一些错误认识.为了达到这个目的,我决定从头到尾详细的描述一下整个ViewState的工作机制,其中我会 ...

  8. 全局对象Application的使用,以及如何在任何地方得到Application全局对象

    Application和Activity,Service一样是android框架的一个系统组件,当android程序启动时系统会创建一个application对象,用来存储系统的一些信息.通常我们是不 ...

  9. SpringBoot集成PageHelper时出现“在系统中发现了多个分页插件,请检查系统配置!”

    近日在项目中使用SpringBoot集成PageHelper后,跑单元测试时出现了"在系统中发现了多个分页插件,请检查系统配置!"这个问题. 如下图所示: org.mybatis. ...

随机推荐

  1. 浅谈ListView滑动隐藏显示ToolBar

    引言 在App日益追求体验的时代,优秀的用户体验往往会使产品脱颖而出.今天我们就来介绍一种简单的滑动ListView来显示或者隐藏ToolBar的功能. 布局文件 下面我们来看一下这个主界面的布局文件 ...

  2. Java 静态内部类与非静态内部类 学习记录.

    目的 为什么会有这篇文章呢,是因为我在学习各种框架的时候发现很多框架都用到了这些内部类的小技巧,虽然我平时写代码的时候基本不用,但是看别人代码的话至少要了解基本知识吧,另外到底内部类应该应用在哪些场合 ...

  3. SQL Server 2016 RC0 安装(超多图)

    微软最新版本的数据库SQL Server 2016在2016年3月9日推出了RC0版本.已经提供了包括简体中文等多种语言版本,不过联机丛书还是英文版的.对OS的要求是WIN8,WIN10, WIN20 ...

  4. 移动开发框架剖析(二) Hammer专业的手势控制

    浏览器底层并没有给元素提供类似,单击,双击,滑动,拖动这些直接可以用的控制接口,一切的手势动作都只能通过模拟出来.移动端浏览器唯一给我们提供的就只是mousedown -> mousemove ...

  5. [译]你应该知道的4种JavaScript设计模式

    这里介绍下面这4种设计模式 Module Prototype Observer Singleton 每种模式有许多属性构成,在这我只强调一下几点: 1 Context: 在何种情况使用哪种模式? 2 ...

  6. java文件上传

    jsp界面代码: <body>  <form action="servlet/UploadServlet" enctype="multipart/for ...

  7. Web获取客户端物理MAC地址(ocx插件)

    主要是通过ActiveX控件 从本地获取到MAC地址,传入到浏览器打开的网页中,再提交到服务器. 具体详解与步骤看文档中: 文件实例包下载 DotNetFX 文件夹附件文件:(可能安装时需用) dot ...

  8. Object-C目录

    Object学习目录: 1.OC概述 2.OC第一个应用程序 3.OC之类和对象(属性.方法,点语法) 4.OC之类的扩充(self,super关键字.继承.构造函数等)   5.OC之分类Categ ...

  9. static修饰符

    static修饰符表示静态的,可修饰字段.方法.内部类,其修饰的成员属于类,也就是说static修饰的资源属于类级别,而不是对象级别. static的正真作用:用来区别字段,方法,内部类,初始化代码块 ...

  10. WebForm基础--2016年12月27日

    C/S:winform WPF 数据是存在其它的电脑上或服务器上需要从服务器上下载相应的数据,在本地电脑上的客户端里进行加工 数据加工的过程是在用户电脑上执行,会对用户的电脑配置有所要求 B/S:AS ...