内置对象 和 DropDownList时间年月日的三级联动
(一)内置对象
1.Request --- 获取请求对象
获取通过地址栏传值过来的对象
string aaa = Request["key"]; key必须和传值的对象名称相同
2.Response --- 响应请求对象
Response.Redirect("新打开的网址?aa=key");/ Response.Redirect("新打开的网址?aa="+key)
地址栏传值/URL传值/QueryString传值优势:不占用服务器内存,保密性查,传递的长度有限
?aa=key 要传递的对象 只能在原有页面上进行刷新,无法打开新的选项卡
Response.Write("string"); --- 将字符串输出到页面的最顶部,string可以书写js代码,打开新的网址
3.Session
优势:1.存贮在服务端,占用服务器内存2.传输速度快3.不要滥用,容易溢出
生命周期:20分钟,每一次的请求都会刷新这个时间,如果浏览器关闭,就会断开此次Session的链接
Session可以存贮Object类型
Session页面传值:
string aa = TextBox1.Text; Session["zz"] = aa; Response.Redirect("bb.aspx");
接收的页面:
Label1.Text = Session["zz"].ToString();
传递实例化的对象:
protected void Page_Load(object sender, EventArgs e) { Button1.Click += Button1_Click; } void Button1_Click(object sender, EventArgs e) { Users u = new Users(); u.username = "小明"; u.sex = "男"; Session["zz"] = u; Response.Redirect("bb.aspx"); }
接收的页面:
Users u = new Users(); u = Session["zz"] as Users; Label1.Text = u.username + u.sex;
4.Cookie
cookie和session一模一样,不一样的地方是:Cookies是存储在客户端的
两者的优缺点:
Session很安全,但是消耗服务器内存,Cookies,不消耗服务器内存,存在客户端上,但是有可能被访问
cookie判断为不为空:
if(Request.Cookies["aa"]!=null){} --- 直接判断接收的值是不是为空
设置持久cookie:
String u = TextBox1.Text;
Response.Cookies["aa"].Value =u;
Response.Cookies["aa"].Expires = DateTime.Now.AddDays(3);---- 设置cooki持续的时间3天,不同的浏览器都有自己的cooki,与保存的时间无关,只是在当前浏览器下保存
页面传值:
protected void Page_Load(object sender, EventArgs e) { Button1.Click += Button1_Click; } void Button1_Click(object sender, EventArgs e) { string u = TextBox1.Text; Response.Cookies["zz"].Value = u; Response.Redirect("bb.aspx"); }
接收的页面:
protected void Page_Load(object sender, EventArgs e) { string u = Request.Cookies["zz"].Value; Label1.Text = u; }
(二)时间年月日的三级联动
页面代码:
<asp:DropDownList Style="font-size: 15px; width: 70px;" ID="DropDownList1" runat="server"></asp:DropDownList>年 <asp:DropDownList Style="font-size: 15px; width: 70px;" ID="DropDownList2" runat="server"></asp:DropDownList>月 <asp:DropDownList Style="font-size: 15px; width: 70px;" ID="DropDownList3" runat="server"></asp:DropDownList>日
js代码:
//年的改变事件 document.getElementById("DropDownList1").onchange = function () { year(); } //判断选择年是否位闰月 function year() { var year1 = document.getElementById("DropDownList1"); var mon = document.getElementById("DropDownList2"); var day = document.getElementById("DropDownList3"); //2月的判断 if (mon.value == "2") { if (year1.value % 100 == 0 && year1.value % 4 == 0 || year1.value % 400 == 0) { day.options.length = null; for (var i = 1; i < 30; i++) { var op = document.createElement("option"); op.value = i; op.innerText = i; day.appendChild(op); } } else { day.options.length = null; for (var i = 1; i < 29; i++) { var op = document.createElement("option"); op.value = i; op.innerText = i; day.appendChild(op); } } } } //月的改变事件 document.getElementById("DropDownList2").onchange = function () { var year1 = document.getElementById("DropDownList1"); var mon = document.getElementById("DropDownList2"); var day = document.getElementById("DropDownList3"); if (mon.value == "1" || mon.value == "3" || mon.value == "5" || mon.value == "7" || mon.value == "9" || mon.value == "10" || mon.value == "12") { day.options.length = null; for (var i = 1; i < 32; i++) { var op = document.createElement("option"); op.value = i; op.innerText = i; day.appendChild(op); } } else if (mon.value == "4" || mon.value == "6" || mon.value == "8" || mon.value == "11") { day.options.length = null; for (var i = 1; i < 31; i++) { var op = document.createElement("option"); op.value = i; op.innerText = i; day.appendChild(op); } } else if(mon.value=="2") { year(); } }