网上书城知识点

 IsPostBack
当get请求是false post请求是true
当提交按钮的时候会把隐藏域中的name取出来,看是不是_viewstate_.有的话就是post,没有的话就是get(false)
去掉隐藏域:去掉ranat=server EnableViewState=false 就是禁用viewstate
当注册的时候当 提交的时候一定要校验下用户名是否存在(js可以被禁用)
注册页面验证的时候表单不能加ruant=server,因为这样,表单提交的时候form表单的id已经改变了
解决办法:
前台:
 
后台:加个判断
  if (Request.HttpMethod.Equals("post",StringComparison.CurrentCultureIgnoreCase))
用户名密码:记住我
怎么判断用户选择了记住我那个选择框:
 if (!string.IsNullOrEmpty(Request.Form["CheckMe"]))

写入cookie

View Code
HttpCookie cookie1 = new HttpCookie("cp1", txtName);
HttpCookie cookie2 = new HttpCookie("cp2", Entry(txtPass));
cookie1.Expires = DateTime.Now.AddDays(3);
cookie2.Expires = DateTime.Now.AddDays(3);
Response.Cookies.Add(cookie1);
Response.Cookies.Add(cookie2);

校验cookie的时候如果用户名或者密码不一致要让cookie过期

                Response.Cookies["cp1"].Expires = DateTime.Now.AddDays(-1);
                Response.Cookies["cp2"].Expires = DateTime.Now.AddDays(-1);            

在图书列表页面主要就是分页和按照价格或者日期排序问题:

分页可以写一个分页用户控件:

用Repeater绑定数据时

改变日期格式:

<%#Eval("PublishDate","{0:yyyy-MM-ss}")%>

 

排序问题:只有点击排序的时候排序,但点击下一页的时候没排序解决思路。
如果你点价格排序,点击下一页的时候是post请求,可以用viewstate保持状态。
点击123分页的时候,你点击2页的时侯,是get请求,这时候viewstate是空了,所以当第一次点击价格排序的时候需把viewstate里的值赋值给分页用户控件里的url,然后通过url传参,获取排序顺序。
 
在母版页加载目录树:从缓存中取
 if (HttpRuntime.Cache["treeview"] == null)
            {
                BLL.Categories categories = new BLL.Categories();
                List modelcateg = categories.GetModelList("");
                HttpRuntime.Cache["treeview"] = modelcateg;
            }
            this.tvCategory.Nodes.Clear();
            foreach (Model.Categories item in HttpRuntime.Cache["treeview"] as List)
            {
                TreeNode node = new TreeNode();
                node.Text = item.Name;
                node.NavigateUrl = "/ListBook/ListBook_" + item.Id + ".aspx"; //"ListBook.aspx?categoryId=" + item.Id;
                this.tvCategory.Nodes.Add(node);
            }

 

 
 
 
 

转载于:https://www.cnblogs.com/guohuiru/archive/2013/04/04/3000274.html

你可能感兴趣的:(网上书城知识点)