一、内置对象

(一)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中数据进行增删改
 
主页前台代码:

  1. </style>
  2. <%--光棒效果--%>
  3. <script type="text/javascript">
  4. window.onload = function () {
  5. var items = document.getElementsByClassName("tr_Item");
  6. var oldColor = "";
  7. for (var i = 0; i < items.length; i++) {
  8. items[i].onmouseover = function () {
  9. oldColor = this.style.backgroundColor;
  10. this.style.backgroundColor = "yellow";
  11. };
  12. items[i].onmouseout = function () {
  13. this.style.backgroundColor = oldColor;
  14. };
  15. }
  16. };
  17. </script>
  18. </head>
  19. <body>
  20. <form id="form1" runat="server">
  21. <div >
  22. <a href ="Login.aspx"><asp:Label ID="Labdl" runat="server" Text="[请登录]"></asp:Label></a>
  23. <asp:Literal ID="Literal1" runat="server"></asp:Literal>
  24. <asp:Button ID="Btntc" runat="server" Text="退出登陆" />
  25. </div>
  26. <asp:Repeater ID="Repeater1" runat="server">
  27. <HeaderTemplate>
  28. <table id="tb1">
  29. <tr id="tr_head">
  30. <td>用户名</td>
  31. <td>密码</td>
  32. <td>昵称</td>
  33. <td>性别</td>
  34. <td>生日</td>
  35. <td>年龄</td>
  36. <td>民族</td>
  37. <td>操作</td>
  38. </tr>
  39. </HeaderTemplate>
  40. <ItemTemplate>
  41. <tr class="tr_Item" style="<%#Eval("Red")%>">
  42. <td><%#Eval("UserName") %></td>
  43. <td><%#Eval("PassWord") %></td>
  44. <td><%#Eval("NickName") %></td>
  45. <td><%#Eval("SexStr") %></td>
  46. <td><%#Eval("BirthdayStr") %></td>
  47. <td><%#Eval("Age") %></td>
  48. <td><%#Eval("NationName") %></td>
  49. <td> <a href="Delete.aspx?un=<%#Eval("UserName") %>" onclick="Del" >删除</a>
  50. <a href="Update.aspx?un=<%#Eval("UserName") %>" target="_blank" onclick="Update">修改</a>
  51. </td>
  52. </tr>
  53. </ItemTemplate>
  54. <FooterTemplate>
  55. </table>
  56. </FooterTemplate>
  57. </asp:Repeater>
  58. <asp:Button ID="btn1" runat="server" Text="添加用户" />
  59. <%--<input id="btn1" type="button" value="添加用户" /><br />--%>
  60. <%--<script>
  61. document.getElementById("btn1").onclick = function () {
  62. window.open("Add.aspx", "_blank");
  63. };
  64. </script>--%>
  65. </form>
  66. </body>
  67. </html>

主页后台代码:

  1. protected void Page_Load(object sender, EventArgs e)
  2. {
  3. if (Request.Cookies["user"] != null)
  4. {
  5. Users u = new UsersDA().Select(Request.Cookies["user"].Value);
  6.  
  7. Labdl.Text = u.NickName;
  8. Literal1.Text = ",欢迎你!";
  9. }
  10.  
  11. if (!IsPostBack)
  12. {
  13. Repeater1.DataSource = new UsersDA().Select();
  14. Repeater1.DataBind();
  15. }
  16. Btntc.Click += Btntc_Click;
  17. btn1.Click += btn1_Click;
  18.  
  19. }
  20.  
  21. void btn1_Click(object sender, EventArgs e)
  22. {
  23. if (Request.Cookies["user"] != null)
  24. {
  25. Response.Redirect("Add.aspx");
  26. }
  27. else
  28. {
  29. Response.Redirect("Login.aspx");
  30. }
  31. }
  32.  
  33. void Btntc_Click(object sender, EventArgs e)
  34. {
  35. //1清除cookies
  36. Response.Cookies["user"].Expires = DateTime.Now.AddDays(-);
  37. //2刷新页面/跳到登陆页面
  38. Response.Redirect("Login.aspx");
  39. }
  40. public void Del(object sender, EventArgs e)
  41. {
  42. if (Request.Cookies["user"] != null)
  43. {
  44. Response.Redirect("Delete.aspx");
  45. }
  46. else
  47. {
  48. Response.Redirect("Login.aspx");
  49. }
  50. }
  51. public void Update(object sender, EventArgs e)
  52. {
  53. if (Request.Cookies["user"] != null)
  54. {
  55. Response.Redirect("Update.aspx");
  56. }
  57. else
  58. {
  59. Response.Redirect("Login.aspx");
  60. }
  61. }

主页后台

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

(一)增加

Add页面前台代码:

  1. <title></title>
  2. <%--判断两次密码是否一致--%>
  3. <script type="text/javascript">
  4. window.onload = function () {
  5. document.getElementById("Button1").onclick = function () {
  6. var pwd1 = document.getElementById("TextBox2").value;
  7. var pwd2 = document.getElementById("TextBox3").value;
  8. if (pwd1 != pwd2) {
  9. document.getElementById("Label1").innerText = "两次密码不一致!";
  10. return false;
  11. }
  12. };
  13. };
  14. </script>
  15. <style type="text/css">
  16. #Label1 {
  17. color: red;
  18. }
  19. </style>
  20.  
  21. </head>
  22. <body>
  23. <form id="form1" runat="server">
  24. <h1>用户添加</h1>
  25. 用户名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
  26. <br />
  27. 密码:<asp:TextBox ID="TextBox2" runat="server" TextMode="Password"></asp:TextBox><br />
  28. <br />
  29. 重复密码:<asp:TextBox ID="TextBox3" runat="server" TextMode="Password"></asp:TextBox><asp:Label ID="Label1" runat="server" Text=""></asp:Label><br />
  30. <br />
  31. 昵称:<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox><br />
  32. <br />
  33. 性别:<asp:RadioButtonList ID="RadioButtonList1" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow">
  34. <asp:ListItem Value="True" Selected="True"></asp:ListItem>
  35. <asp:ListItem Value="False"></asp:ListItem>
  36. </asp:RadioButtonList><br />
  37. <br />
  38. 生日:<asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList>
  39. <asp:DropDownList ID="DropDownList2" runat="server"></asp:DropDownList>
  40. <asp:DropDownList ID="DropDownList3" runat="server"></asp:DropDownList>
  41. <br />
  42. <br />
  43. 民族:<asp:DropDownList ID="DropDownList4" runat="server"></asp:DropDownList><br />
  44. <br />
  45. <asp:Button ID="Button1" runat="server" Text="添加" />
  46.  
  47. </form>
  48. </body>
  49. </html>

Add前台

Add页面后台代码:

  1. protected void Page_Load(object sender, EventArgs e)
  2. {
  3. if (!IsPostBack)
  4. {
  5.  
  6. for (int i = DateTime.Now.Year; i >= ; i--)
  7. {
  8. ListItem li = new ListItem(i.ToString(), i.ToString());
  9.  
  10. DropDownList1.Items.Add(li);
  11. }
  12.  
  13. for (int i = ; i <= ; i++)
  14. {
  15. ListItem li = new ListItem(i.ToString(), i.ToString());
  16.  
  17. DropDownList2.Items.Add(li);
  18. }
  19.  
  20. for (int i = ; i <= ; i++)
  21. {
  22. ListItem li = new ListItem(i.ToString(), i.ToString());
  23.  
  24. DropDownList3.Items.Add(li);
  25. }
  26.  
  27. DropDownList4.DataSource = new NationData().Select();
  28. DropDownList4.DataTextField = "NationName";
  29. DropDownList4.DataValueField = "NationCode";
  30. DropDownList4.DataBind();
  31. }
  32.  
  33. Button1.Click += Button1_Click;
  34.  
  35. }
  36.  
  37. void Button1_Click(object sender, EventArgs e)
  38. {
  39. Users u = new Users();
  40. u.UserName = TextBox1.Text;
  41. u.PassWord = TextBox3.Text;
  42. u.NickName = TextBox4.Text;
  43. u.Sex = Convert.ToBoolean(RadioButtonList1.SelectedItem.Value);
  44. string date = DropDownList1.SelectedValue + "-" + DropDownList2.SelectedValue + "-" + DropDownList3.SelectedValue;
  45. u.Birthday = Convert.ToDateTime(date);
  46. u.Nation = DropDownList4.SelectedItem.Value;
  47.  
  48. bool ok = new UsersDA().Insert(u);
  49.  
  50. //3、提示添加成功
  51. if (ok)
  52. {
  53. Response.Write("<script>alert('添加成功!')</script>");
  54. Response.Write("<script>this.opener.location.href='Main.aspx';this.close();</script>");
  55. }
  56. else
  57. {
  58. Response.Write("<script>alert('添加失败!')</script>");
  59. }
  60.  
  61. }

Add后台

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


(二)、删除

Delete页面前台代码:无

Delete页面后台代码:

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

Delete后台

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


(三)、修改

Update前台代码:

  1. <form id="form1" runat="server">
  2. <h1>用户修改</h1>
  3. 用户名:<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label><br />
  4. <br />
  5. 密码:<asp:TextBox ID="TextBox2" runat="server" TextMode="Password"></asp:TextBox><br />
  6. <br />
  7. 重复密码:<asp:TextBox ID="TextBox3" runat="server" TextMode="Password"></asp:TextBox><asp:Label ID="Label1" runat="server" Text=""></asp:Label><br />
  8. <br />
  9. 昵称:<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox><br />
  10. <br />
  11. 性别:<asp:RadioButtonList ID="RadioButtonList1" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow">
  12. <asp:ListItem Value="True"></asp:ListItem>
  13. <asp:ListItem Value="False"></asp:ListItem>
  14. </asp:RadioButtonList><br />
  15. <br />
  16. 生日:<asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList>
  17. <asp:DropDownList ID="DropDownList2" runat="server"></asp:DropDownList>
  18. <asp:DropDownList ID="DropDownList3" runat="server"></asp:DropDownList>
  19. <br />
  20. <br />
  21. 民族:<asp:DropDownList ID="DropDownList4" runat="server"></asp:DropDownList><br />
  22. <br />
  23.  
  24. <asp:Button ID="Button1" runat="server" Text="修改" />
  25. </form>

Update后台代码:

  1. //建一个变量来存储原密码
  2. string pwd = "";
  3. protected void Page_Load(object sender, EventArgs e)
  4. {
  5. //1、将传过来的主键值接收
  6. string uname = Request["un"].ToString();
  7.  
  8. //2、通过主键值将对象查出来
  9. Users u = new UsersDA().Select(uname);
  10.  
  11. pwd = u.PassWord;
  12.  
  13. if (!IsPostBack)
  14. {
  15. for (int i = DateTime.Now.Year; i >= 1900; i--)
  16. {
  17. ListItem li = new ListItem(i.ToString(), i.ToString());
  18.  
  19. DropDownList1.Items.Add(li);
  20. }
  21.  
  22. for (int i = 1; i <= 12; i++)
  23. {
  24. ListItem li = new ListItem(i.ToString(), i.ToString());
  25.  
  26. DropDownList2.Items.Add(li);
  27. }
  28.  
  29. for (int i = 1; i <= 31; i++)
  30. {
  31. ListItem li = new ListItem(i.ToString(), i.ToString());
  32.  
  33. DropDownList3.Items.Add(li);
  34. }
  35.  
  36. DropDownList4.DataSource = new NationData().Select();
  37. DropDownList4.DataTextField = "NationName";
  38. DropDownList4.DataValueField = "NationCode";
  39. DropDownList4.DataBind();
  40.  
  41. //3、将对象中的数据绑定到每一个控件上去
  42. Label2.Text = u.UserName;
  43. TextBox4.Text = u.NickName;
  44.  
  45. foreach (ListItem li in RadioButtonList1.Items)
  46. {
  47. if (u.Sex)
  48. {
  49. if (li.Value == "True")
  50. {
  51. li.Selected = true;
  52. }
  53. }
  54. else
  55. {
  56. if (li.Value == "False")
  57. {
  58. li.Selected = true;
  59. }
  60. }
  61. }
  62.  
  63. DropDownList1.SelectedValue = u.Birthday.Year.ToString();
  64. DropDownList2.SelectedValue = u.Birthday.Month.ToString();
  65. DropDownList3.SelectedValue = u.Birthday.Day.ToString();
  66. DropDownList4.SelectedValue = u.Nation;
  67.  
  68. }
  69.  
  70. Button1.Click += Button1_Click;
  71.  
  72. }
  73.  
  74. void Button1_Click(object sender, EventArgs e)
  75. {
  76. //1、构建一个Users对象
  77. Users u = new Users();
  78. u.UserName = Label2.Text;
  79.  
  80. //获取密码
  81. if (TextBox2.Text == "" && TextBox3.Text == "")
  82. {
  83. u.PassWord = pwd;
  84. }
  85. else
  86. {
  87. u.PassWord = TextBox3.Text;
  88. }
  89. u.NickName = TextBox4.Text;
  90. u.Sex = Convert.ToBoolean(RadioButtonList1.SelectedItem.Value);
  91. string date = DropDownList1.SelectedValue + "-" + DropDownList2.SelectedValue + "-" + DropDownList3.SelectedValue;
  92. u.Birthday = Convert.ToDateTime(date);
  93. u.Nation = DropDownList4.SelectedItem.Value;
  94.  
  95. //2、将此对象添加到数据库去
  96. bool ok = new UsersDA().Update(u);
  97.  
  98. //3、提示添加成功
  99. if (ok)
  100. {
  101. Response.Write("<script>alert('修改成功!')</script>");
  102. Response.Write("<script>this.opener.location.href='Main.aspx';this.close();</script>");
  103. }
  104. else
  105. {
  106. Response.Write("<script>alert('修改失败!')</script>");
  107. }

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

后注:部分重要代码

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

  1. <script type="text/javascript">
  2. window.onload = function () {
  3. document.getElementById("Button1").onclick = function () {
  4. var pwd1 = document.getElementById("TextBox2").value;
  5. var pwd2 = document.getElementById("TextBox3").value;
  6. if (pwd1 != pwd2) {
  7. document.getElementById("Label1").innerText = "两次密码不一致!";
  8. return false;
  9. }
  10. };
  11. };
  12. </script>

js密码

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

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

  1. if (ok)
  2. {
  3. Response.Write("<script>alert('添加成功!')</script>");
  4. Response.Write("<script>this.opener.location.href='Main.aspx';this.close();</script>");
  5. }
  6. else
  7. {
  8. Response.Write("<script>alert('添加失败!')</script>");
  9. }

添加

  1. if (ok)
  2. {
  3. Response.Write("<script>alert('修改成功!')</script>");
  4. Response.Write("<script>this.opener.location.href='Main.aspx';this.close();</script>");
  5. }
  6. else
  7. {
  8. Response.Write("<script>alert('修改失败!')</script>");
  9. }

修改

 
 
 
 
 

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. docker创建私有仓库

    由于网速和大中华局域网效果,使得我们在DockerHub下载镜像的速度很慢,甚至一些国内的镜像仓库,也感觉速度不是很好.所以,很有必要在本地或者一个我们访问很快速的地方(自己的云服务器)搭建一套镜像仓 ...

  2. c 线程(平行世界)

    我们已经知道如何使用进程来做一些事情了,然而 它并不是在什么地方都是最适合的. 我们看看进程的缺点是什么: 线程隆重登场 1. 如何创建线程 创建线程可以使用多种线程库,在此我们使用最流行的一种:PO ...

  3. Python(七)Socket编程、IO多路复用、SocketServer

    本章内容: Socket IO多路复用(select) SocketServer 模块(ThreadingTCPServer源码剖析) Socket socket通常也称作"套接字" ...

  4. Node基础篇(模块和NPM)

    核心模块 核心模块的意义 如果只是在服务器运行JavaScript代码,意义并不大,因为无法实现任何功能(读写文件,访问网络). Node 的用处在于它本身还提供的一系列功能模块,用于与操作系统互动. ...

  5. jQuery操作DOM元素

    作为一个后端程序员,也是要和前端页面打交道的.最常见的场景莫过DOM元素操作和前端页面使用AJAX向服务器发送请求.实现上述两个功能当然可以使用原生js来完成,但在实际开发过程中很少这样做,通常会使用 ...

  6. iOS关于模块化开发解决方案(纯干货)

    关于iOS模块化开发解决方案网上也有一些介绍,但真正落实在在具体的实例却很少看到,计划编写系统文章来介绍关于我对模块化解决方案的理解,里面会有包含到一些关于解耦.路由.封装.私有Pod管理等内容:并编 ...

  7. PowerShell 操作 Azure SQL Active Geo-Replication 实战

    <Azure SQL Database Active Geo-Replication简介>一文中,我们比较全面的介绍了 Azure SQL Database Active Geo-Repl ...

  8. 用python实现逻辑回归

    机器学习课程的一个实验,整理出来共享. 原理很简单,优化方法是用的梯度下降.后面有测试结果. # coding=utf-8 from math import exp import matplotlib ...

  9. C#WebBrowrse拦截下载对话框

    为了实现这个功能,可算是折腾不少时间,网上搜素出来的结果基本都是如何屏蔽警告对话框.后来请教一个技术大牛(程序员之窗的主要作者Starts_2000),他用C++实现了,他尝试了下C#也没有解决,就忙 ...

  10. C#开发微信门户及应用(21)-微信企业号的消息和事件的接收处理及解密

    在上篇随笔<C#开发微信门户及应用(19)-微信企业号的消息发送(文本.图片.文件.语音.视频.图文消息等)>介绍了有关企业号的消息发送,官方特别声明消息是不用加密发送的.但是在回调的服务 ...