当前位置:中国站长下载文章中心网页编程.NET编程 → asp.net1.1 开发专用模板类(2)

asp.net1.1 开发专用模板类(2)

减小字体 增大字体 作者:不详  来源:不详  发布时间:2006-8-14 8:37:07
     ****************************************************************************
  标签函数关联:
   具体详细请看 Business.cs 文件
  
   在逻辑层对应的类的静态构造器内,加如下代码。
  
  //调用静态构造器,把标签执行函数委托放到静态哈希表内
   //必须执行这个方法
   static Business()
   {
   Business _this=new Business();
  
   FunctionList.objFunctionHashtable.Add("无参书签",new KeyItemDelegate(new UserDelegate.Run_0(_this.show),0));
  
   FunctionList.objFunctionHashtable.Add("一个参数书签",new KeyItemDelegate(new UserDelegate.Run_1(_this.tag),1));
  
   FunctionList.objFunctionHashtable.Add("二个参数书签",new KeyItemDelegate(new UserDelegate.Run_2(_this.tag_two),2));
  
  
   //书签和执行函数关联。放到书签解析类的静态构造函数内。是为了可以完全使用内存中的对象,不每次都执行
   // "一个参数书签" 字符对应 public string tag(string aa) 函数 对应模式为在哈希表上加key和value
   // ("一个参数书签",new KeyItemDelegate(new UserDelegate.Run_1(_this.tag),1));
   // 标签名 | | |
   // 一个参数就用Run_1委托。 | |
   // 对应的标签执行函数 |
   // 一个参数就写数字一
  
   // 0 个或多个上面有对应例子
   }
  
  
   具体详细请看 Business.cs 文件
  
  *****************************************************************************
  标签内loop循环介绍:
   标签内通过一些特殊符号,可以实现非嵌套loop循环
  
  
   //------------------------------------------------------------------------
   {$loop(3,0,alter)$} //显示三行,从0行开始,如果有交替列,运行交替列
   {$BlockItem$} //默认的循环行,
  
   <td bgcolor="#33ccff">标题:{$dt[5][name]$} , 作者:{$一个参数:dt[dddf]$}</td>
  
   {$/BlockItem$}
  
  
   {$BlockAlterItem$} // 交替循环行 当没有默认行标签对,有交替循标签对。就把交替循标签对当默认行标签对
  
   <td bgcolor="#ff6699">标题:{$dt[5][name]$} , 作者:{$一个参数:dt[dddf]$}</td>
  
   {$/BlockAlterItem$}
  
  
   {$BlockPatch$} //当要循环的行数大于Datatable内的行数时,用这里的内容补充显示 。 如果没有 “补充” 标签对。那么当显示行数大于Datatable中的行数时,将只显示Datatable中的行数
  
   <td bgcolor="#33ccff">补充(里面也可以使用标签)</td>
  
   {$/BlockPatch$}
  
  
   {$BlockAlterPatch$} //没有补充标签对,有交替补充标签对。就把交替补充标签对当补充标签对
  
   <td bgcolor="#ff6699">交替补充(里面也可以使用标签)</td>
  
   {$/BlockAlterPatch$}
  
   {$/loop$} //循环结束
   //--------------------------------------------------------------
  
   {$BlockItem$} {$/BlockItem$} :默认的循环行标签对
   {$BlockAlterItem$} {$/BlockAlterItem$} :交替循环行标签对
   {$BlockPatch$} {$/BlockPatch$} :默认补充行标签对
   {$BlockAlterPatch$} {$/BlockAlterPatch$} :交替补充行标签对
  
   //------------------------------------------------------
  
   如果只有默认的循环行可以不加{$BlockItem$}标签对
   如
   {$loop(3,0,alter)$}
   <tr><td>{$函数标签$}</td></tr>
   {$/loop$}
   和
   {$loop(3,0,alter)$}
   {$BlockItem$}<tr><td>{$函数标签$}</td></tr>{$/BlockItem$}
   {$/loop$}
   是表示一样的效果
  
  
   //-------------------------------------------------------------
  
  
   {$loop(3,0,alter)$}
   {$BlockAlterPatch$}
   <tr><td>{$函数标签$}</td></tr>
   {$/BlockAlterPatch$}
   {$/loop$}
   如果只有交替循环行标签对没有默认的循环行标签对那么交替循环行标签对将自动转换为
   默认循环行标签对
  
  
   //--------------------------------------------------------------
  
   {$loop(3,0,alter)$}
   {$BlockAlterPatch$}
   <tr><td>{$函数标签$}</td></tr>
   {$/BlockAlterPatch$}
   {$/loop$}
   如果只有交替补充行标签对没有默认补充行标签对那么交替补充行标签对将自动转换为
   默认循环行标签对
  
  
  
  **************************************************************************
  
  loop参数说明:
   {$loop(3,0,alter)$}
   loop上一共有三个参数,可适当减少
   第一个参数:
   3:循环3次 ,没有表示循环全部
   第二个参数:
   2:从2开始,没有表示从0开始
   第三个参数:
   alter:交替
   noalter:不交替 ,没有表示默认为交替,所以alter加不加是一样的
   如果三个参数全不写,至少要保留一对空括号 {$loop()$}
   表示循环Datatable内的行数
   从0行开始,有补充就显示补充。
  *************************************************************************
  
  有更新了一下。主要是优化循环。
  现在循环5万行的表格要 300-400 毫秒。
  
  
  ***************************************************************************
  建议模板不要大于85k,小心成为大尺寸对象。那可是二代对象
  建议页面模板小于等于919个,对应函数标签建议不超过1597个。
  很高兴看见模板类和我自己的认识一起成长。
  
  *****************************************************************************
    做人要厚道,请注明转自chinazhan中国站长(www.ChinaZhan.com)。