一、内置对象

(一)Response对象

1、简介:response 对象在ASP中负责将信息传递给用户.Response对象用于动态响应客户端请求,并将动态生成的响应结果返回到客户端浏览器中,使用Response对象可以直接发送信息给浏览器,重定向浏览器到另一个URL或设置cookie的值等.

2、方法:①、write方法:response.write **

                             功能:向客户端发送浏览器能够处理的各种数据,包括:html代码,脚本程序等.
                             实例:response.write "I LOVE YOU !!"
               ②、redirect方法:response.redirect("url")的作用是在服务器端重定向于另一个网页。
 

(二)Request对象
1、简介:Request对象的作用是与客户端交互,收集客户端的Form、Cookies、超链接,或者收集服务器端的环境变量。
               request对象是从客户端向服务器发出请求,包括用户提交的信息以及客户端的一些信息。客户端可通过HTML表单或在网页地址后面提供参数的方法提交数据,然后通过request对象的相关方法来获取这些数据。request的各种方法主要用来处理客户端浏览器提交的请求中的各项参数和选项。
2、Request对象的五个集合:①、QueryString:用以获取客户端附在url地址后的查询字符串中的信息。

                                                                          例如:stra=Request.QueryString ["strUserld"]
                                                                           前台传递写法:地址 ?key=value&key=value
                                                       注意事项:●不需要保密的东西可以传,在地址栏中是可见的,可更改的。
                                                                       ●不要传过长东西,因为长度有限,过长会造成数据丢失。
                                                ②、Form:用以获取客户端在FORM表单中所输入的信息。(表单的method属性值需要为POST)

                                                                 例如:stra=Request.Form["strUserld"]

                                                ③、Cookies:用以获取客户端的Cookie信息。

                                                                 例如:stra=Request.Cookies["strUserld"]
                                                ④、ServerVariables:用以获取客户端发出的HTTP请求信息中的头信息及服务器端环境变量信息。

                                                                               例如:stra=Request.ServerVariables["REMOTE_ADDR"],返回客户端IP地址
                                                ⑤、ClientCertificate:用以获取客户端的身份验证信息

                                                                                例如:stra=Request.ClientCertificate["VALIDFORM"],对于要求安全验证的网站,返回有效起始日期。
 


 
二、利用Response对象和Request对象对Reparter中数据进行增删改
 
主页前台代码:

    </style>
<%--光棒效果--%>
<script type="text/javascript">
window.onload = function () {
var items = document.getElementsByClassName("tr_Item");
var oldColor = "";
for (var i = 0; i < items.length; i++) {
items[i].onmouseover = function () {
oldColor = this.style.backgroundColor;
this.style.backgroundColor = "yellow";
};
items[i].onmouseout = function () {
this.style.backgroundColor = oldColor;
};
}
};
</script>
</head>
<body>
<form id="form1" runat="server">
<div >
<a href ="Login.aspx"><asp:Label ID="Labdl" runat="server" Text="[请登录]"></asp:Label></a>
<asp:Literal ID="Literal1" runat="server"></asp:Literal>
<asp:Button ID="Btntc" runat="server" Text="退出登陆" />
</div>
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<table id="tb1">
<tr id="tr_head">
<td>用户名</td>
<td>密码</td>
<td>昵称</td>
<td>性别</td>
<td>生日</td>
<td>年龄</td>
<td>民族</td>
<td>操作</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr class="tr_Item" style="<%#Eval("Red")%>">
<td><%#Eval("UserName") %></td>
<td><%#Eval("PassWord") %></td>
<td><%#Eval("NickName") %></td>
<td><%#Eval("SexStr") %></td>
<td><%#Eval("BirthdayStr") %></td>
<td><%#Eval("Age") %></td>
<td><%#Eval("NationName") %></td>
<td> <a href="Delete.aspx?un=<%#Eval("UserName") %>" onclick="Del" >删除</a>
<a href="Update.aspx?un=<%#Eval("UserName") %>" target="_blank" onclick="Update">修改</a>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
<asp:Button ID="btn1" runat="server" Text="添加用户" />
<%--<input id="btn1" type="button" value="添加用户" /><br />--%>
<%--<script>
document.getElementById("btn1").onclick = function () {
window.open("Add.aspx", "_blank");
};
</script>--%>
</form>
</body>
</html>

主页后台代码:

 protected void Page_Load(object sender, EventArgs e)
{
if (Request.Cookies["user"] != null)
{
Users u = new UsersDA().Select(Request.Cookies["user"].Value); Labdl.Text = u.NickName;
Literal1.Text = ",欢迎你!";
} if (!IsPostBack)
{
Repeater1.DataSource = new UsersDA().Select();
Repeater1.DataBind();
}
Btntc.Click += Btntc_Click;
btn1.Click += btn1_Click; } void btn1_Click(object sender, EventArgs e)
{
if (Request.Cookies["user"] != null)
{
Response.Redirect("Add.aspx");
}
else
{
Response.Redirect("Login.aspx");
}
} void Btntc_Click(object sender, EventArgs e)
{
//1清除cookies
Response.Cookies["user"].Expires = DateTime.Now.AddDays(-);
//2刷新页面/跳到登陆页面
Response.Redirect("Login.aspx");
}
public void Del(object sender, EventArgs e)
{
if (Request.Cookies["user"] != null)
{
Response.Redirect("Delete.aspx");
}
else
{
Response.Redirect("Login.aspx");
}
}
public void Update(object sender, EventArgs e)
{
if (Request.Cookies["user"] != null)
{
Response.Redirect("Update.aspx");
}
else
{
Response.Redirect("Login.aspx");
}
}

主页后台

点击主页“”增加用户“按钮”,跳转到Add(添加)页面。

(一)增加

Add页面前台代码:

 <title></title>
<%--判断两次密码是否一致--%>
<script type="text/javascript">
window.onload = function () {
document.getElementById("Button1").onclick = function () {
var pwd1 = document.getElementById("TextBox2").value;
var pwd2 = document.getElementById("TextBox3").value;
if (pwd1 != pwd2) {
document.getElementById("Label1").innerText = "两次密码不一致!";
return false;
}
};
};
</script>
<style type="text/css">
#Label1 {
color: red;
}
</style> </head>
<body>
<form id="form1" runat="server">
<h1>用户添加</h1>
用户名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
<br />
密码:<asp:TextBox ID="TextBox2" runat="server" TextMode="Password"></asp:TextBox><br />
<br />
重复密码:<asp:TextBox ID="TextBox3" runat="server" TextMode="Password"></asp:TextBox><asp:Label ID="Label1" runat="server" Text=""></asp:Label><br />
<br />
昵称:<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox><br />
<br />
性别:<asp:RadioButtonList ID="RadioButtonList1" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow">
<asp:ListItem Value="True" Selected="True">男</asp:ListItem>
<asp:ListItem Value="False">女</asp:ListItem>
</asp:RadioButtonList><br />
<br />
生日:<asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList>年
<asp:DropDownList ID="DropDownList2" runat="server"></asp:DropDownList>月
<asp:DropDownList ID="DropDownList3" runat="server"></asp:DropDownList>日
<br />
<br />
民族:<asp:DropDownList ID="DropDownList4" runat="server"></asp:DropDownList><br />
<br />
<asp:Button ID="Button1" runat="server" Text="添加" /> </form>
</body>
</html>

Add前台

Add页面后台代码:

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{ for (int i = DateTime.Now.Year; i >= ; i--)
{
ListItem li = new ListItem(i.ToString(), i.ToString()); DropDownList1.Items.Add(li);
} for (int i = ; i <= ; i++)
{
ListItem li = new ListItem(i.ToString(), i.ToString()); DropDownList2.Items.Add(li);
} for (int i = ; i <= ; i++)
{
ListItem li = new ListItem(i.ToString(), i.ToString()); DropDownList3.Items.Add(li);
} DropDownList4.DataSource = new NationData().Select();
DropDownList4.DataTextField = "NationName";
DropDownList4.DataValueField = "NationCode";
DropDownList4.DataBind();
} Button1.Click += Button1_Click; } void Button1_Click(object sender, EventArgs e)
{
Users u = new Users();
u.UserName = TextBox1.Text;
u.PassWord = TextBox3.Text;
u.NickName = TextBox4.Text;
u.Sex = Convert.ToBoolean(RadioButtonList1.SelectedItem.Value);
string date = DropDownList1.SelectedValue + "-" + DropDownList2.SelectedValue + "-" + DropDownList3.SelectedValue;
u.Birthday = Convert.ToDateTime(date);
u.Nation = DropDownList4.SelectedItem.Value; bool ok = new UsersDA().Insert(u); //3、提示添加成功
if (ok)
{
Response.Write("<script>alert('添加成功!')</script>");
Response.Write("<script>this.opener.location.href='Main.aspx';this.close();</script>");
}
else
{
Response.Write("<script>alert('添加失败!')</script>");
} }

Add后台

注:在Add页面中点击“”“添加”按钮,会提示添加是否成功,若添加成功,关闭Add页面,刷新Main主页面。在这里用到了Response对象中的write方法!


(二)、删除

Delete页面前台代码:无

Delete页面后台代码:

protected void Page_Load(object sender, EventArgs e)
{
//1、获得要删除的主键值,username
string Uname = Request["un"].ToString(); //2、删除
new UsersDA().Delete(Uname); //3、调回显示页面
Response.Redirect("Main.aspx");
}

Delete后台

注:在这里用到了Response对象中的Redirect方法和Request对象中的QueryString集合,当然,在用QueryString集合时,需要Main主页里面写传递,这个可以见上面的Main主页前台代码。


(三)、修改

Update前台代码:

<form id="form1" runat="server">
<h1>用户修改</h1>
用户名:<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label><br />
<br />
密码:<asp:TextBox ID="TextBox2" runat="server" TextMode="Password"></asp:TextBox><br />
<br />
重复密码:<asp:TextBox ID="TextBox3" runat="server" TextMode="Password"></asp:TextBox><asp:Label ID="Label1" runat="server" Text=""></asp:Label><br />
<br />
昵称:<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox><br />
<br />
性别:<asp:RadioButtonList ID="RadioButtonList1" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow">
<asp:ListItem Value="True">男</asp:ListItem>
<asp:ListItem Value="False">女</asp:ListItem>
</asp:RadioButtonList><br />
<br />
生日:<asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList>年
<asp:DropDownList ID="DropDownList2" runat="server"></asp:DropDownList>月
<asp:DropDownList ID="DropDownList3" runat="server"></asp:DropDownList>日
<br />
<br />
民族:<asp:DropDownList ID="DropDownList4" runat="server"></asp:DropDownList><br />
<br /> <asp:Button ID="Button1" runat="server" Text="修改" />
</form>

Update后台代码:

//建一个变量来存储原密码
string pwd = "";
protected void Page_Load(object sender, EventArgs e)
{
//1、将传过来的主键值接收
string uname = Request["un"].ToString(); //2、通过主键值将对象查出来
Users u = new UsersDA().Select(uname); pwd = u.PassWord; if (!IsPostBack)
{
for (int i = DateTime.Now.Year; i >= 1900; i--)
{
ListItem li = new ListItem(i.ToString(), i.ToString()); DropDownList1.Items.Add(li);
} for (int i = 1; i <= 12; i++)
{
ListItem li = new ListItem(i.ToString(), i.ToString()); DropDownList2.Items.Add(li);
} for (int i = 1; i <= 31; i++)
{
ListItem li = new ListItem(i.ToString(), i.ToString()); DropDownList3.Items.Add(li);
} DropDownList4.DataSource = new NationData().Select();
DropDownList4.DataTextField = "NationName";
DropDownList4.DataValueField = "NationCode";
DropDownList4.DataBind(); //3、将对象中的数据绑定到每一个控件上去
Label2.Text = u.UserName;
TextBox4.Text = u.NickName; foreach (ListItem li in RadioButtonList1.Items)
{
if (u.Sex)
{
if (li.Value == "True")
{
li.Selected = true;
}
}
else
{
if (li.Value == "False")
{
li.Selected = true;
}
}
} DropDownList1.SelectedValue = u.Birthday.Year.ToString();
DropDownList2.SelectedValue = u.Birthday.Month.ToString();
DropDownList3.SelectedValue = u.Birthday.Day.ToString();
DropDownList4.SelectedValue = u.Nation; } Button1.Click += Button1_Click; } void Button1_Click(object sender, EventArgs e)
{
//1、构建一个Users对象
Users u = new Users();
u.UserName = Label2.Text; //获取密码
if (TextBox2.Text == "" && TextBox3.Text == "")
{
u.PassWord = pwd;
}
else
{
u.PassWord = TextBox3.Text;
}
u.NickName = TextBox4.Text;
u.Sex = Convert.ToBoolean(RadioButtonList1.SelectedItem.Value);
string date = DropDownList1.SelectedValue + "-" + DropDownList2.SelectedValue + "-" + DropDownList3.SelectedValue;
u.Birthday = Convert.ToDateTime(date);
u.Nation = DropDownList4.SelectedItem.Value; //2、将此对象添加到数据库去
bool ok = new UsersDA().Update(u); //3、提示添加成功
if (ok)
{
Response.Write("<script>alert('修改成功!')</script>");
Response.Write("<script>this.opener.location.href='Main.aspx';this.close();</script>");
}
else
{
Response.Write("<script>alert('修改失败!')</script>");
}

注:●在这里用到了Response对象中的write方法和Request对象中的QueryString集合,当然,在用QueryString集合时,需要Main主页里面写传递,这个可以见上面的Main主页前台代码。
      ●点击“”修改“”按钮,弹提示框,若添加成功,关闭Update页面,刷新Main主页面。

后注:部分重要代码

1、js代码判断两次密码是否一致

<script type="text/javascript">
window.onload = function () {
document.getElementById("Button1").onclick = function () {
var pwd1 = document.getElementById("TextBox2").value;
var pwd2 = document.getElementById("TextBox3").value;
if (pwd1 != pwd2) {
document.getElementById("Label1").innerText = "两次密码不一致!";
return false;
}
};
};
</script>

js密码

2、弹框显示添加/修改是否成功,成功则刷新主页面reparter数据

this.opener.location.href='Main.aspx':跨界面刷新主页面

if (ok)
{
Response.Write("<script>alert('添加成功!')</script>");
Response.Write("<script>this.opener.location.href='Main.aspx';this.close();</script>");
}
else
{
Response.Write("<script>alert('添加失败!')</script>");
}

添加

if (ok)
{
Response.Write("<script>alert('修改成功!')</script>");
Response.Write("<script>this.opener.location.href='Main.aspx';this.close();</script>");
}
else
{
Response.Write("<script>alert('修改失败!')</script>");
}

修改

 
 
 
 
 

Webform(五)——内置对象(Response、Request)和Repeater中的数据增删改的更多相关文章

  1. Webform(内置对象-Response与Redirect、QueryString传值、Repeater删改)

    一.内置对象(一)Response - 响应请求对象1.定义:Response对象用于动态响应客户端请示,控制发送给用户的信息,并将动态生成响应.Response对象只提供了一个数据集合cookie, ...

  2. .Net的内置对象之一 Request

    一.Request简介 Request对象是.net的内置对象之一,也是.net中常用的对象,用于获取客户端的信息,可以使用Request对象访问任何基于HTTP请求传递的所有信息.通过Request ...

  3. JSP第四篇【EL表达式介绍、获取各类数据、11个内置对象、执行运算、回显数据、自定义函数、fn方法库】

    什么是EL表达式? 表达式语言(Expression Language,EL),EL表达式是用"${}"括起来的脚本,用来更方便的读取对象! EL表达式主要用来读取数据,进行内容的 ...

  4. JSP最常用的五种内置对象(out,request,response,session,application)

    为了简化开发过程,JSP提供了一些内置对象,它们由容器实现和管理.开发者在JSP页面中无需声明,无需实例化就可使用.主要有out,request,response,session,applicatio ...

  5. 菜鸟学Java(五)——JSP内置对象之request

    书接上回,上次跟大家概括的说了说JSP的九种常用内置对象.接下来就该聊聊它们各自的特点了,今天先说说request吧. 下面是request的一些常用方法: isUserInRole(String r ...

  6. webform(内置对象)

    一.内置对象 (一)Response - 响应请求对象1.定义:Response对象用于动态响应客户端请示,控制发送给用户的信息,并将动态生成响应.Response对象只提供了一个数据集合cookie ...

  7. JSP内置对象——response对象

    看一个实例: 运行结果: 出现了一个很奇怪的现象,这个outer对象输出的字符串,跑到顶部去了.这个呢也就说明了response对象获得的writer对象的输出总是前于我们的内置对象.(respons ...

  8. JSP内置对象---response 响应

    将response.jsp 页面的html标签(包括html.head.body)全部删掉. <%@ page language="java" import="ja ...

  9. JSP内置对象之request

    书接上回,上次跟大家概括的说了说JSP的九种常用内置对象.接下来就该聊聊它们各自的特点了,今天先说说request吧. 下面是request的一些常用方法: isUserInRole(String r ...

随机推荐

  1. 快速Android开发系列通信篇之EventBus

    先吐槽一下博客园的MarkDown编辑器,推出的时候还很高兴博客园支持MarkDown了,试用了下发现支持不完善就没用了,这次这篇是在其他编辑器下写的,复制过来后发现..太烂了.怎么着作为一个技术博客 ...

  2. 异步与并行~List<T>是线程安全的吗?

    返回目录 题目有点意思,大家都知道Dictionary<K,V>不是线程安全的类型,而List<T>是线程安全的吗?在今天之前大叔没有去测试过,而就在今天也是一个VIP问我,说 ...

  3. 常用js功能函数集合

    1.获取随机时间戳 function uniqueId(){         var a=Math.random,b=parseInt;         return Number(new Date( ...

  4. css3属性,会动的生日蛋糕

    <!DOCTYPE html><html><head lang="en">    <meta charset="UTF-8&qu ...

  5. 【.net 深呼吸】自定义缓存配置(非Web项目)

    在前一篇烂文中,老周简单讲述了非Web应用的缓存技术的基本用法.其实嘛,使用系统默认方案已经满足我们的需求了,不过,如果你真想自己来配置缓存,也是可以的. 缓存的自定义配置可以有两种方案,一种是用代码 ...

  6. 移动端事件对象touches的误区

    不想长篇大论,也是自己遗留下的一个错误的理解 在移动端触屏事件有四个 // 手势事件 touchstart //当手指接触屏幕时触发 touchmove //当已经接触屏幕的手指开始移动后触发 tou ...

  7. JavaScript权威设计--事件冒泡,捕获,事件句柄,事件源,事件对象(简要学习笔记十八)

    1.事件冒泡与事件捕获 2.事件与事件句柄   3.事件委托:利用事件的冒泡技术.子元素的事件最终会冒泡到父元素直到跟节点.事件监听会分析从子元素冒泡上来的事件. 事件委托的好处:     1.每个函 ...

  8. PHP的学习--在Atom中使用XDebug(Mac)

    之前写过一篇博客<PHP的学习--在sublime中使用XDebug(Ubuntu)>,讲了在Ubuntu系统 sublime 中配置 XDebug,其实配置好之后,我也很少用,原因有两点 ...

  9. 账号密码管理系统Access版本

    哈哈,花了我整整五天时间,账号密码管理系统软件终于成功编写完成了.由于我的各大论坛的账号密码特别多,记性又不好.所以一直以来都想要这么一个软件的,但是以前学习的都是面向过程的编程语言,一直无法实现这个 ...

  10. sublime快捷键操作

    一些文本编辑器窗口,浏览器窗口,软件(qq)窗口的快捷键操作有些都是一致的,下面是sublime的一些快捷键操作,很好用. 另外按住ESC键可以关闭CTRL + B执行结果的窗口 ctrl+shift ...