一、内置对象

1.Response对象:响应请求
Response.Write("<script>alert('添加成功!')</script>"); → 输出
Response.Redirect("Default.aspx"); → 跳转页面

2.Request对象:获取请求
Request["key"]来获取传递过来的值 → key:定义的名字

3.QueryString:地址栏数据传递 ?key=value&key=value
注意事项:不需要保密的东西可以传
不要传过长东西,因为长度有限,过长会造成数据丢失

二、数据的增删改

【添加】

在主界面添加一个“添加按钮”连接到新窗口添加页面

<input id="btn1" type="button" value="添加用户" />

<script>
document.getElementById("btn1").onclick = function () {
window.open("TianJia.aspx", "_blank");
}; </script>

验证两次输入的密码是否一致 不一致把结果交给label1显示,按钮不提交

  <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>

填写完点击“添加”提交

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

    void Button1_Click(object sender, EventArgs e)
{
//1、构建一个Users对象
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; //2、将此对象添加到数据库去
bool ok = new UsersData().Insert(u); //3、提示添加成功
if (ok)
{
Response.Write("<script>alert('添加成功!')</script>");
Response.Write("<script>this.opener.location.href='Default.aspx';this.close();</script>");
}
else
{
Response.Write("<script>alert('添加失败!')</script>");
} }

【删除】

在主页面数据显示中添加一列删除,点击删除,则当前窗口打开Delete.aspx页面执行删除代码后跳转到主页面,有种刷新的效果

删除列:<td><a href="Delete.aspx?un=<%#Eval("UserName") %>">删除</a></td>

删除页面的代码:

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

【修改】

主页面数据显示添加一列修改:<td><a href="XiuGai.aspx?un=<%#Eval("UserName") %>" target="_blank">修改</a></td>

修改页面数据显示:

    string pwd = "";
protected void Page_Load(object sender, EventArgs e)
{
//1、将传过来的主键值接收
string uname = Request["un"].ToString(); //2、通过主键值将对象查出来
Users u = new UsersData().Select(uname); pwd = u.PassWord;//定义一个变量=原密码 当用户不修改密码时用 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(); //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 UsersData().Update(u); //3、提示修改成功
if (ok)
{
Response.Write("<script>alert('修改成功!')</script>");
Response.Write("<script>this.opener.location.href='Default.aspx';this.close();</script>");
}
else
{
Response.Write("<script>alert('修改失败!')</script>");
}
}

三、登陆状态保持

【Cookies】

在用户电脑的硬盘上保存的一段文本

http协议包括浏览器,允许站点在用户电脑上以Cookies的形式来临时保存数据

如果没有设置保存时间,会话cookies时:
1、如果你20分钟内没有再次刷新页面,那么此cookies就会自动删除掉
2、当当前访问连接中断,如关闭浏览器,那么cookies会自动删除

作用:保持用户的登陆状态

用法:

1、获取账号:Response.Cookies["user"].Value = TextBox1.Text;

2、给该账号设置登录保持的过期时间:Response.Cookies["user"].Expires = DateTime.Now.AddDays(7);

3、清除cookies:Response.Cookies["user"].Expires = DateTime.Now.AddDays(-5); 只要让数值为负即可,表示已过期几天

WebForm 内置对象、数据增删改、状态保持的更多相关文章

  1. WebForm 内置对象QueryString、Repeater删改

    一.内置对象QueryString--地址栏数据拼接 格式:?key=value 如:string path = "Default2.aspx?aaa=" + TextBox1.T ...

  2. WebForm 内置对象

    内置对象: Response对象:响应请求 Response.Write("<script>alert('添加成功!')</script>"); Respo ...

  3. C#WebForm内置对象

    内置对象: Response对象:响应请求Response.Write("<script>alert('添加成功!')</script>");Respons ...

  4. WebForm 内置对象2

    Session: 与Cookies相比 相同点:每一台电脑访问服务器,都会是独立的一套session,key值都一样,但是内容都是不一样的 以上所有内容,都跟cookies一样 不同点: 1.Sess ...

  5. C# WebForm内置对象2+Repeater的Command

    内置对象:用于页面之间的数据交互 为什么要使用这么内置对象?因为HTTP的无状态性. Session:在计算机中,尤其是在网络应用中,称为“会话控制”.Session 对象存储特定用户会话所需的属性及 ...

  6. 【2017-05-22】WebForm内置对象:Application和ViewState、Repeater的Command用法

    一.内置对象 1.Application 存贮在服务器端,占用服务器内存生命周期:永久 所有人访问的都是这一个对象 传值:传的是object类型可以传对象. string s =TextBox1.Te ...

  7. WebForm内置对象:Application和ViewState、Repeater的Command用法

    一.内置对象 1.Application 存贮在服务器端,占用服务器内存生命周期:永久 所有人访问的都是这一个对象 传值:传的是object类型可以传对象. string s =TextBox1.Te ...

  8. Webform 内置对象2(Session、Application)、Repeater的Command操作

    内置对象: 1.Session:跟Cookies一样用来存储用户数据,但保存位置不同,保存在服务器内存上 每一台电脑访问服务器,都会是独立的一套session,key值都一样,但是内容都是不一样的 S ...

  9. Webform 内置对象(Response对象、Request对象,QueryString)

    Response对象:响应请求 Response.Write("<script>alert('添加成功!')</script>"); Response.Re ...

随机推荐

  1. iOS之UIColloctionView

    iOS--UICollectionView(滚动视图)入门 UICollectionView @interface UICollectionView : UIScrollView UICollecti ...

  2. SQL SERVER 2008 Hierarchyid数据类型

    以往我们在关系数据库中建立树状结构的时候,通常使用ID+ParentID来实现两条纪录间的父子关系.但这种方式只能标示其相对位置.解决这类问题在SqlServer2005出现之前通常是采用游标来操作, ...

  3. Hadoop详解一:Hadoop简介

    从数据爆炸开始... 一. 第三次工业革命        第一次:18世纪60年代,手工工厂向机器大生产过渡,以蒸汽机的发明和使用为标志.      第二次:19世纪70年代,各种新技术新发明不断被应 ...

  4. (中等) POJ 2948 Martian Mining,DP。

    Description The NASA Space Center, Houston, is less than 200 miles from San Antonio, Texas (the site ...

  5. Delphi中unicode转汉字函数(转)

    源:Delphi中unicode转汉字函数 近期用到这个函数,无奈没有找到 delphi 自带的,网上找了下 有类似的,没有现成的,我需要的是 支持 “\u4f00 ” 这种格式的,即前面带标准的 “ ...

  6. Linux监控体系

    监控体系 zabbix 博客:www.abcdocker.com 微信公众号:abcdocker 笔者QQ:381493251 Abcdocker交流群:454666672 如果遇到什么问题可以进群询 ...

  7. Linux 环境编译安装mysql (源码安装包)

    标注: Linux需要先配置网络yum源,确定yum能在线安装软件包,方便测试过程中安装部分依赖包.配置163网易提示的网络yum源参考博客  http://www.cnblogs.com/zoulo ...

  8. 自己实现的sax XML解析,可能会有误

    package com.agatha.bean; public class OrderInfoBean { private String order_id; private String room_t ...

  9. jQuery简单实现图片预加载

    我们在做网站的时候经常会遇到这样的问题:一个页面有大量的图片导致页面加载速度缓慢,经常会出现一个白页用户体验很不好.那么如何解决这个问题呢?下面我来介绍一种在实际应用中经常会使用到的js预加载的方法. ...

  10. Python3基础 用 while循环实现 斐波那契数列

    镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...