zoukankan      html  css  js  c++  java
  • 我的代码,写的pagebase。还是留着吧。语义化,与我的云平台一样,只不过云平台是用js写的。这个是webform.下回写mvc吧。核心很简单。

    Ps:记一下用的时候,一不小心我手贱碰到的问题吧:
    我在页面里面加上了form runat=server,然后所有的html控件就再也找不着了。
    就是下面的control collection这里,如果加上form runat=server标签,页面里面所有的控件就会变为form控件的子集。这样产生了问题,使页面不能使用,所以切忌!不要使用form runat=server标签!再不手贱了。
    要么就一定要用循环的方式,把所有的控件的子集都取出来放到一个collection里面再去遍历,要么就直接用findcontrol了。一码傻三年!
    using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using JGDJWeb.Helper; using JGDJWeb.Model; namespace JGDJWeb.Extensions {     public abstract class PageBase:System.Web.UI.Page {         protected PageBase()         {         }         protected void BindModule(Page page, Action<Repeater, string> bindSingRpt) {             BindControls(page, "List_", bindSingRpt);         }                  protected void BindControls(Page page, String prefix, Action<Repeater, string> bindSingControl) {             var controlList = page.Controls;             foreach (Control control in controlList) {                 if (control.ID != null && control.ID.StartsWith(prefix) && control is Repeater) {                     var suffix = control.ID.Split('_')[1];                     if (prefix == "List_")                         bindSingControl(control as Repeater, suffix);                 }             }         }         protected void Bind(string className, HtmlAnchor anchor, Repeater repeater, int count) {             try {                 using (var context = new JGDJEntities()) {                     var classNo = context.JY_News_Classs.Where(n => n.ClassCName == className).First().ClassNo;                     var newss = Common.GetNewsListByCNo(Encrypt.MD5Encrypt(classNo));                     if (anchor != null) {                         anchor.HRef = "/List.aspx?ClassNo=" + Encrypt.MD5Encrypt(classNo);                     }                     repeater.DataSource = newss.Take(count);                     repeater.DataBind();                 }             } catch (Exception e) { }         }         #region 网站访问量         protected void pageviews() {             int count = 0;             //数据累加             int Stat = 0;             StreamReader srd;             //取得文件的实际路径             string file_path = Server.MapPath("/XML/counter.txt");             //打开文件进行读取             srd = File.OpenText(file_path);             while (srd.Peek() != -1) {                 string str = srd.ReadLine();                 count = int.Parse(str);             }             srd.Close();             // 在新会话启动时运行的代码             Application.Lock();             //获取Application对象中保存的网站总访问量             Stat = count;             Stat += 1;             object obj = Stat;             Application["counter"] = obj;             //将数据记录写入文件             StreamWriter srw = new StreamWriter(file_path, false);             srw.WriteLine(Stat);             srw.Close();             Application.UnLock();         }         #endregion     } }
  • 相关阅读:
    Orcale三层嵌套实现分页功能
    在VM虚拟机上安装Microsoft Dynamics CRM 2016 步骤图解及安装注意事项
    CSS 选择器 关系
    C#获取当前程序运行路径的方法集合//获取当前进程的完整路径
    连接QuickBooks Online实现于IOS App数据同步功能的个人记录
    Posix定义的进程线程同步系统调用
    SQL SERVER 数据库事物日志 备份 收缩 腾出空间
    JAVABEAN递归转MAP实现
    第一次迭代——视频点播系统
    cstddef定义了NULL
  • 原文地址:https://www.cnblogs.com/hualiu0/p/4522699.html
Copyright © 2011-2022 走看看