asp常用代码集锦
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ASP中常用代码
Cookie的用法:
//Cookie的用法
HttpCookie cookie = new HttpCookie("first"); //第一个Cookie cookie.Expires = DateTime.Now.AddDays(30); //设置Cookie的消失时间,时间为30天
cookie.Values["name"] = "lsc"; //设置Cookie的值
//name <-->lsc为键值对
cookie.Values["password"] = "12345";
Response.Cookies.Add(cookie); //将指定的Cookie保存到本机
//获取Cookie的值
HttpCookie c = (HttpCookie)Request.Cookies["first"];
Response.Write(c.Values["name"] + "<br/>");
Response.Write(c.Values["password"]);
Application 的用法:
写在Gloal.asax
voidApplication_Start(object sender, EventArgs e)
{
// Code that runs on application startup
//服务器启动时运行的代码
//关于计数器的使用
//在此初始化计数器
Application["count"] = 0; //当服务器启动时调用,该网站访问数为0
开始
}
写在页面端
protected void Page_Load(object sender, EventArgs e) {
try
{
//取出application中的值|
Application.Lock();
int count = (int)Application["count"];
count++;
Application["count"] = count; //将此返回服务?器Response.Write("你是第+Application["count"] + "位访客¨a");
Application.UnLock();
}
catch (Exception ex)
{
Response.Write(“<script>alert(“+ex.Message+”)</script>”); }
}
如果写在页面端,则用户刷新一次,访问人数就增加
voidSession_Start(object sender, EventArgs e)
{
// Code that runs when a new session is started
//在新会话启动时运行的代码
//取出application中的值
Application.Lock();
int count = (int)Application["count"];
count++;
Application["count"] = count; //将此返回服务器Response.Write("你是第" + Application["count"] + "位访客");
Application.UnLock();
}
将此写在Global.asax中使得页面只有通过重新访问,访问数才能增加,否则不能增加
Lock()和UnLock()的意义是必须是一个加完后,另外一个在加Response的用法:
Response用于向页面输出内容和实现页面的重定向
Response.Write();
Resposne.Redirect("网址")
Response.Cookies.Add(); 用于添加Cookie
Request的用法:
Request用于获取表单的值
String name=request.queryString["name"];
String name=request.from["name"];
String name=request.params["name"]; --最常用的一种方法
String name=request["name"];
Session的用法:(Session中可以传递各种数据类型的数据也可以传递类)
Session用于在各个页面之间传递数据
首先是将值存放在Session中:
Session["name"] = name;
Session["password"] = password;
然后获取值:
string name = (string)Session["name"];
string password = (string)Session["password"];
###在实际工作中,Session传递的值一般是一个封装类JavaScript中页面自动跳转的方法:
将其添加在中即可实现中的自动跳转
<SCRIPT LANGUAGE="JavaScript">
<!--
function redirect() { //跳转页
window.location = "Default.aspx";
}
timer = setTimeout('redirect()', 5 * 1000); //跳转
//-->
</SCRIPT>
在中设置密码框即在TextBox中添加TextMode="password" ---利用中自身的TextBox设置密码框添加TextMode属性
关于DropDownList的数据绑定:
首先在DropDownList中的事件SelectedIndexChanged中添加:
this.Image1.ImageUrl = "img/" + this.DropDownList1.SelectedValue.ToString();
1、利用图形界面进行数据绑定,详见数据绑定视频
2、利用ArrayList容器进行数据绑定,但是只能是5条一下的数据
if (!IsPostBack)
{
ArrayList list = new ArrayList();
list.Add("1.jpg");
list.Add("2.jpg");
list.Add("3.jpg");
this.DropDownList1.DataSource = list; //指定数据源
this.DropDownList1.DataBind();
}
3、利用数据库操作进行动态的数据绑定(较为正规的用法)
//利用数据库操作进行动态数据绑定
if (!IsPostBack)
{
stringstrConn = "server=LSC-BD9E16FDC63\\SQLEXPRESS;database=mldn;Uid=china;Pwd=1 2345678";
SqlConnectionsqlConn = new SqlConnection(strConn);
sqlConn.Open();
SqlCommandcmd = new SqlCommand();
mandText = "select * from Images";
cmd.Connection =sqlConn;
SqlDataAdaptersda = new SqlDataAdapter(cmd);
DataTabledt = new DataTable();
sda.Fill(dt);
this.DropDownList1.DataSource = dt;
this.DropDownList1.DataTextField = "imgs"; //添加显示给用户的数据
this.DropDownList1.DataValueField = "imgs"; //添加传递给服务器的数据
this.DropDownList1.DataBind();
}
在中利用onClientClick()事件调用JavaScript代码而不用onClick()事件
在代码后面添加return false 阻止后面的代码执行
在判断姓名文本框、密码框等不能为空的判断时,避免没有添加页面仍然跳转则在每一个判断后面添加一上return false,
同时在onClientClick()中添加return javaScript方法
CheckBoxList的用法:
int count = this.CheckBoxList1.Items.Count;
for (int index = 0; index <= count; index++)
{
if (this.CheckBoxList1.Items[index].Selected)
{
Response.Write(this.CheckBoxList1.Items[index].Text);
}
}
RadioButtonList的用法:
for (int index = 0; index < this.RadioButtonList1.Items.Count; index++)
{
if (this.RadioButtonList1.Items[index].Selected)
{
Response.Write(this.RadioButtonList1.Items[index].Text);
}
}
Data中的Repeater的用法:主要用于分页首先拖动一个Reoeater控件,然后配置数据源
在切换到代码视图,添加相应的模板,其中()模板如下:
<HeaderTemplate></HeaderTemplate>
<ItemTemplate></ItemTemplate> --必写
<FooterTemplate></FooterTemplate>
<AlternatingTemplate></AlternatingTeplate> --隔行显示模板,实现隔行的显示方式
对应实例:
<form id="form1" runat="server">
<div>
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1">
<HeaderTemplate>
<table border="1">
<tr>
<td width="100">图片</td><td width="100">值</td>
</tr>
</table>
</HeaderTemplate>
<ItemTemplate>
<table border="1">
<tr style=" color:Green">
<td width="100"><%# Eval("imgs") %></td>
<td width="100"><%# Eval("imgsValue")%></td>
</tr>
</table>
</ItemTemplate>
<AlternatingItemTemplate>
<table border="1">
<tr style=" color:Red">
<td width="100"><%# Eval("imgs") %></td>
<td width="100"><%# Eval("imgsValue") %></td>
</tr>
</table>
</AlternatingItemTemplate>
<FooterTemplate>
<table border="1">
<tr>
<td colspan="2">这是一个测试程序!!</td>
</tr>
</table>
</FooterTemplate>
</asp:Repeater>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:mldnConnectionString %>" SelectCommand="SELECT * FROM [Images]"></asp:SqlDataSource>
<br />
<br />
<br />
<br />
</div>
</form>
ASP中的分页:
真分页和假分页
假分页:
using System;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Web;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Data;
usingSystem.Data.SqlClient;
public partial class page : System.Web.UI.Page
{
privateintpageNumber = 0;
privateintlineCount;
public void pages()
{
stringstrConn = "server=LSC-BD9E16FDC63\\SQLEXPRESS;database=build;Pwd=12345678;U
id=china";
SqlConnection conn = new SqlConnection(strConn);
conn.Open();
SqlCommandcmd = new SqlCommand();
cmd.Connection = conn;
mandText = "select * from fangyuan";
SqlDataAdaptersda = new SqlDataAdapter(cmd);
DataTabledt = new DataTable();
sda.Fill(dt);
PagedDataSourcepds = new PagedDataSource();
pds.DataSource = dt.DefaultView;
pds.AllowPaging = true; //是否允许分页
pds.PageSize = 2; //指定每页显示多少条数据
pds.CurrentPageIndex = pageNumber; //指定显示的页码,用该变量控制翻页
this.Repeater1.DataSource = pds;
this.Repeater1.DataBind();
conn.Close();
}
protected void Page_Load(object sender, EventArgs e)
{
this.pages();
stringstrConn = "server=LSC-BD9E16FDC63\\SQLEXPRESS;database=build;Pwd=12345678;U
id=china";
SqlConnection conn = new SqlConnection(strConn);
conn.Open();
SqlCommandcmd = new SqlCommand();
cmd.Connection = conn;
mandText = "select count(*) from fangyuan";
object o = cmd.ExecuteScalar();
lineCount = Convert.ToInt32(o);
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
try
{
pageNumber = 0;
this.pages();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
protected void LinkButton2_Click(object sender, EventArgs e)
{
try
{
if (pageNumber< 0)
{
Response.Write("不能再向上翻页了!");
}
else
{
pageNumber -= 1;
this.pages();
}
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
protected void LinkButton3_Click(object sender, EventArgs e) {
try
{
pageNumber = 0;
this.pages();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
protected void LinkButton4_Click(object sender, EventArgs e) {
try
{
pageNumber = 1;
this.pages();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
protected void LinkButton5_Click(object sender, EventArgs e) {
try
{
pageNumber = 2;
this.pages();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
protected void LinkButton7_Click(object sender, EventArgs e) {
try
{
if (pageNumber == (lineCount - 1))
{
Response.Write("不能再向下翻页了!");
}
else
{
pageNumber += 1;
this.pages();
}
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
protected void LinkButton8_Click(object sender, EventArgs e) {
try
{
pageNumber = lineCount - 1;
this.pages();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
}
DataList的用法:(绑定数据的方式与Repeater相同)
与Repeater相比较,DataList的功能更强大,可以实现删除,具体用法如下:
DataList绑定数据的两种方式:
1、利用图形化界面对数据进行绑定
2、动态的对数据进行绑定
stringstrConn = "server=LSC-BD9E16FDC63\\SQLEXPRESS;database=build;Pwd=12345678;U
id=china";
SqlConnection conn = new SqlConnection(strConn);
conn.Open();
SqlCommandcmd = new SqlCommand();
cmd.Connection = conn;
mandText = "select * from fangyuan";
SqlDataAdaptersda = new SqlDataAdapter(cmd);
DataTabledt = new DataTable();
sda.Fill(dt);
this.DataList1.DataSource = dt;
this.DataList1.DataKeyField = "bianhao"; //指定以何种字段为标准 ---关键
this.DataList1.DataBind();
conn.Close();
删除方法:
string bianhao = this.DataList1.DataKeys[e.Item.ItemIndex].ToString(); //用于获取对应的编号 ----关键
stringstrConn =
"server=LSC-BD9E16FDC63\\SQLEXPRESS;database=build;Pwd=12345678;U
id=china";
SqlConnection conn = new SqlConnection(strConn);
conn.Open();
SqlCommandcmd = new SqlCommand();
cmd.Connection = conn;
mandText = "delete from fangyuan where bianhao='" + bianhao + "'";
cmd.ExecuteNonQuery();
conn.Close();
每删除一次后对数据进行重新绑定,实现更新
DXControls外部控件的使用:
在使用DXControls时注册代码(放在<% @page 的下面)
<%@ Register Assembly="DXControls" Namespace="DXControls" TagPrefix="cc1" %>
在复制<cc1:dxtb id="concentdx" runat="server" height="100px" width="450px"></cc1:dxtb>该段代码到.aspx文件中
在使用该控件时,必须在工程中导入Bin文件夹,同时该文件夹中必须存在DXControls.dll文件,还应导入dxtb文件夹,里面包含有相应的文件
中验证控件的使用
1、RequiredFieldValidator必填项验证,如网络上的*为必填项的实
现
必须对两个属性进行更改:ControlToValidate指定对哪个控件进行验证
ErrorMessage当输入错误时显示的错误信息
2、RegularExpressionValidator正则表达式验证,如对密码、邮箱等
的验证
必须对三个属性进行更改:ControlToValidate指定对哪个控件进行验证
ErrorMessage当输入错误时显示的错误信息
ValidationExpression写出对应的正则表达式
3、RangeValidator数字界限验证,如3-100
常见的正则表达式的匹配字符串:
\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 为匹配邮箱地址
防止用户未登录就访问页面的代码:
<%
If(Session(“name”) == null)
{
Response.Redirect(“Login.aspx”);
}
%>
通过Seesion在用户登录时存值,再每一个页面都判断是否存在Session传递的值,已判断用户是否登录,通常传递类
Linq的使用:
查询操作:
//读取配置文件t
StudentDataClassesDataContext context =
new StudentDataClassesDataContext();
//取出数据表中的所有内容
System.Data.Linq.Table<student> list = context.GetTable<student>();
//按照需求查询
var query = from student in list select student;
//或者语句的使用
var query = from Person in context.Persons where Person.id == 1 || =="lsc" select Person;
foreach(var student in query)
{
Response.Write(+"<br />");
}
删除操作:(先查找再删除)
PersonDataClassesDataContext context =
new PersonDataClassesDataContext();
System.Data.Linq.Table<Person> list = context.GetTable<Person>();
var delete = from Person in context.Persons where Person.id==1 select Person; foreach (var Person in delete)
{
//删除操作
context.Persons.DeleteOnSubmit(Person);
}
context.SubmitChanges(); //提交操作
Response.Write("删除成功");
添加数据操作:
PersonDataClassesDataContext context =
new PersonDataClassesDataContext();
System.Data.Linq.Table<Person> list = context.GetTable<Person>();
Person p = new Person();
p.id = 1;
= "flq";
p.password = "flq";
context.Persons.InsertOnSubmit(p);//添加数据
context.SubmitChanges(); //提交操作
修改数据操作:
PersonDataClassesDataContext context =
new PersonDataClassesDataContext();
System.Data.Linq.Table<Person> list = context.GetTable<Person>();
var update = from Person in context.Persons where Person.id==4 select Person; foreach (var P in update)
{
= "wms";
P.password = "wms";
}
context.SubmitChanges();
利用Linq遍历数组:
利用Linq对容器进行操作:
如何利用Linq进行降序排列:
以“c”结尾长度不大于5的人名。