Route之简单应用

来源:互联网 发布:orbitcontrols.js 编辑:程序博客网 时间:2024/05/18 00:39

目的:分页地址栏重写

Global.asax

两个规则:

void RegisterRoutes(RouteCollection routes)        {           routes.MapPageRoute("Url1", "List/{Names}", "~/New/List.aspx");           routes.MapPageRoute("Url2", "List/{Names}/{page}", "~/New/List.aspx");                   }


注册:

void Application_Start(object sender, EventArgs e)        {            // Code that runs on application startup            RegisterRoutes(RouteTable.Routes);        }


首页两个Linkbutton:

GBPath:从名为Url1的规则中取出地址。

public string GVPath(string id)        {            RouteValueDictionary parameters = new RouteValueDictionary() { { "Names", id }, };            VirtualPathData vpd = RouteTable.Routes.GetVirtualPath(null, "Url1", parameters);            return vpd.VirtualPath;        }        protected void LinkButton1_Click(object sender, EventArgs e)        {            Response.Redirect(GVPath("Tom"));        }        protected void LinkButton2_Click(object sender, EventArgs e)        {            Response.Redirect(GVPath("Jean"));        }

列表页:

public string Ou;        protected void Page_Load(object sender, EventArgs e)        {            if (!IsPostBack)            {                GridView1.DataSource = GetData(Page.RouteData.Values["Names"].ToString());                GridView1.DataBind();            }        }        public string GVPath(string page)        {            RouteValueDictionary parameters = new RouteValueDictionary() { { "Names", Page.RouteData.Values["Names"].ToString() }, { "page", page }, };            VirtualPathData vpd = RouteTable.Routes.GetVirtualPath(null, "Url2", parameters);            return vpd.VirtualPath;        }        private IQueryable GetData(string Li)        {            MyLinqDataContext md = new MyLinqDataContext();            var AllData = from c in md.TextTBs                          where c.Names == Li                          select new                              {                                  c.ID,                                  c.Names,                                  c.Sex,                                  c.DTime                              };            var DataCount = AllData.Count();            var PageCount = (int)Math.Ceiling((decimal)DataCount / 2);            int skipPage = 0;            if (Page.RouteData.Values.ContainsKey("page"))            {                int page = Convert.ToInt32(Page.RouteData.Values["page"]);                skipPage = (page - 1) * 2;            }            var TrueData = AllData.Skip(skipPage).Take(2);            StringBuilder sb = new StringBuilder();            for (int i = 1; i <= PageCount; i++)            {                sb.AppendFormat("<a href=\"" + GVPath(i.ToString()) + "\">" + i + "</a>  ");            }            Ou = sb.ToString();            return TrueData;        }