private void 更新输出HTML代码() { var tp = 计算总页数(总项目数, 每页显示最大项目数); if (tp <= 1 && 仅有一页时隐藏控件) { 输出HTML代码 = string.Empty; return; } var np = 当前页; Func <int, string> makenavurl = 页码 => { var d = new Dictionary <string, string>(); d.Add(Url分页参数名, 页码.ToString()); return(WebSite处理函数.获取页面名称() + "?" + WebSite处理函数.生成URL参数字串(d, true)); }; Func <int, string, string, string> makehtml = (页码, 显示字符串, Css类) => { if (页码 == np) { return(@"<li class=""{1}"">{0}</li>".FormatWith(显示字符串 == null ? (页码 + 1).ToString() : 显示字符串, Css类 == null ? "NowPage" : Css类)); } else { return(@"<li class=""{3}""><a href=""{2}"" title=""{0}"">{1}</a></li>".FormatWith(页码链接提示文字.FormatWith(页码 + 1), 显示字符串 == null ? (页码 + 1).ToString() : 显示字符串, 页面跳转模式 ? makenavurl(页码) : Page.GetPostBackClientHyperlink(this, 页码.ToString()), Css类 == null ? "Page" : Css类)); } }; StringBuilder s = new StringBuilder(); if (np > 0) { s.AppendLine(makehtml(np - 1, "上一页", "LastPage")); } for (int i = 0; i < tp; i++) { if (i == 0 || i == tp - 1 || (i <= np + 当前页前后临近页码显示量 && i >= np - 当前页前后临近页码显示量)) { s.AppendLine(makehtml(i, null, null)); } else if (i == (tp - np - 当前页前后临近页码显示量) / 2 + 当前页前后临近页码显示量 + np || i == (np - 当前页前后临近页码显示量) / 2) { s.AppendLine(makehtml(i, "…", null)); } } if (np < tp - 1) { s.AppendLine(makehtml(np + 1, "下一页", "NextPage")); } 输出HTML代码 = s.ToString(); }
/// <summary> /// 将动态页面转换为静态HTML页 /// </summary> public void 转换为静态HTML页面(string 输出文件路径) { WebSite处理函数.转换为静态HTML页面(文件名, 输出文件路径); }
/// <summary> /// 获得Url或表单参数的值, 先判断Url参数是否为空字符串, 如为True则返回表单参数的值 /// </summary> /// <param name="参数名">参数名</param> /// <returns>Url或表单参数的值</returns> public string 获取表单或URL参数值(string 参数名) { return(WebSite处理函数.获取表单或URL参数值(参数名)); }