使用VTemplate模板引擎动态生成订单流程图_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 使用VTemplate模板引擎动态生成订单流程图

使用VTemplate模板引擎动态生成订单流程图

 2013/10/11 18:21:03  飞越梦翔  博客园  我要评论(0)
  • 摘要:1、VTemplate模板引擎的简介VTemplate模板引擎也简称为VT,是基于.NET的模板引擎,它允许任何人使用简单的类似HTML语法的模板语言来引用.NET里定义的对象。当VTemplate应用于web开发时,界面设计人员可以和程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由程序开发人员关注业务逻辑编码。VTemplate将.NET程序代码从web页面中分离出来,这样为web站点的长期维护提供了便利,同时也为我们在ASP
  • 标签:模板 使用 流程

1、VTemplate模板引擎的简介

VTemplate模板引擎也简称为VT,是基于.NET的模板引擎,它允许任何人使用简单的类似HTML语法的模板语言来引用.NET里定义的对象。当VTemplate应用于web开发时,界面设计人员可以和程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由程序开发人员关注业务逻辑编码。VTemplate将.NET程序代码从web页面中分离出来,这样为web站点的长期维护提供了便利,同时也为我们在ASP.NET WebForm开发之外又提供了一种可选的方案。 VTemplate也可以作为动态文本生成工具,生成HTML、XML、邮件、程序源代码或其它文本等。

2、使用 VTemplate 生成的订单流程图

类似于一些购物网站,订单提交后实时的查询当前流转的步骤

1. 定VTemplateHelper类

 

class="code_img_closed" src="/Upload/Images/2013101118/0015B68B3C38AA5B.gif" alt="" />logs_code_hide('b44aaac2-49af-4f6a-bfad-12333017959a',event)" src="/Upload/Images/2013101118/2B1B950FA3DF188F.gif" alt="" />
 1   public  class VTemplateHelper
 2     {
 3 
 4 
 5         public VTemplateHelper(string ConfigFile)
 6         {
 7             this.ConfigFile = ConfigFile;
 8             LoadTemplateFile();
 9         }
10 
11         public VTemplateHelper(string ConfigFile,Encoding Encoding)
12         {
13             this.ConfigFile = ConfigFile;
14             this.Encoding = Encoding;
15             LoadTemplateFile();
16         }
17 
18         /// <summary>
19         /// 当前页面的模板文档的配置参数
20         /// </summary>
21         protected virtual TemplateDocumentConfig DocumentConfig
22         {
23             get
24             {
25                 return TemplateDocumentConfig.Default;
26             }
27         }
28 
29         public  TemplateDocument Document
30         {
31             get;
32             private set;
33         }
34 
35         public string ConfigFile { get; set; }
36 
37         public Encoding Encoding { get; set; }
38 
39         /// <summary>
40         /// 是否读取缓存模板
41         /// </summary>
42         protected virtual bool IsLoadCacheTemplate
43         {
44             get
45             {
46                 return true;
47             }
48         }
49 
50         /// <summary>
51         /// 装载模板文件
52         /// </summary>
53         /// <param name="fileName"></param>
54         protected virtual void LoadTemplateFile()
55         {
56             if (Encoding == null)
57             {
58                 Encoding = System.Text.Encoding.UTF8;
59             }
60             this.Document = null;
61             if (this.IsLoadCacheTemplate)
62             {
63                 //测试缓存模板文档
64                 this.Document = TemplateDocument.FromFileCache(ConfigFile, Encoding, this.DocumentConfig);
65             }
66             else
67             {
68                 //测试实例模板文档
69                 this.Document = new TemplateDocument(ConfigFile, Encoding, this.DocumentConfig);
70             }
71         }
72 
73         /// <summary>
74         /// 请先调用LoadTemplateFile方法
75         /// </summary>
76         /// <returns></returns>
77         public string RenderText()
78         {
79             return this.Document.GetRenderText();
80         }
81 
82         public string RenderSimpleText(object obj,string Name)
83         {
84             this.LoadTemplateFile();
85             this.Document.Variables.SetValue(Name, obj);
86             return RenderText();
87         }
88     }
View Code

2. 调用代码

 

  VTemplateHelper vt = new VTemplateHelper(Server.MapPath("OrderProcessSteps.htm"));
  string html=vt.RenderSimpleText(order, "order");
  this.DivProcess.InnerHtml = html;  

DivProcess 是页面对应的DIV控件,用于显示内容

OrderProcessSteps.html 页面使用,类似ASPX 页面嵌套代码使用

 

 1 <html xmlns="http://www.w3.org/1999/xhtml">
 2 <head>
 3     <title></title>
 4     <link href="../Style/css/common.css" rel="stylesheet" type="text/css" />
 5     <link href="../Style/css/user.orderinfo.css" rel="stylesheet" type="text/css" />
 6     <script type="text/javascript">
 7      function adddeliver() { 
 8                 window.open("appdeliver.aspx?orderno="+<%=orderno %>);
 9         }
10     </script>
11 </head>
12 <body>
13     <div id="process" class="section4">
14         <div class="node fore ready">
15             <ul>
16                 <li class="tx1">&nbsp;</li>
17                 <li class="tx2" style="padding-left: 20px">提交订单</li>
18                 <li class="tx3" style="padding-left: 80px">
19                     {$:order.OrderTime} </li></ul>
20         </div>
21         <div class="proce  ready ">
22             <ul>
23                 <li class="tx1">&nbsp;</li></ul>
24         </div>
25   <vt:if var="order.OrderStatus" value="-1" > 
26         <div class="node  ready">
27             <ul>
28                 <li class="tx1">&nbsp;</li>
29                 <li class="tx2">订单关闭</li>
30                 <li class="tx3"></li>
31             </ul>
32         </div>
33   <vt:else>
34     <vt:if var="order.PayStatus" value="0" > 
35         <div class="node  wait">
36             <ul>
37                 <li class="tx1">&nbsp;</li>
38                 <li class="tx2">暂未支付</li>
39                 <li class="tx3"></li>
40             </ul>
41         </div>
42         <div class=" proce  wait ">
43             <ul>
44                 <li class="tx1">&nbsp;</li></ul>
45         </div>
46     <vt:elseif value="1" > 
47         <div class="node ready">
48             <ul>
49                 <li class="tx1">&nbsp;</li>
50                 <li class="tx2">支付确认中</li>
51                 <li class="tx3"></li>
52             </ul>
53         </div>
54         <div class=" proce doing ">
55             <ul>
56                 <li class="tx1">&nbsp;</li></ul>
57         </div>
58     <vt:elseif  value="2" > 
59         <div class="node  ready">
60             <ul>
61                 <li class="tx1">&nbsp;</li>
62                 <li class="tx2">付款成功</li>
63                 <li class="tx3"></li>
64             </ul>
65         </div>
66         <div class=" proce  ready ">
67             <ul>
68                 <li class="tx1">&nbsp;</li></ul>
69         </div>
70      </vt:if>
71     </vt:if>
72     </div>
73 </body>
74 </html>
View Code

 

详细的使用可参考:http://www.cnblogs.com/kingthy/archive/2009/08/17/net-vtemplate.html 

谢谢--

 

 

 

 

 

 

发表评论
用户名: 匿名