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类

   public  class VTemplateHelper
{ public VTemplateHelper(string ConfigFile)
{
this.ConfigFile = ConfigFile;
LoadTemplateFile();
} public VTemplateHelper(string ConfigFile,Encoding Encoding)
{
this.ConfigFile = ConfigFile;
this.Encoding = Encoding;
LoadTemplateFile();
} /// <summary>
/// 当前页面的模板文档的配置参数
/// </summary>
protected virtual TemplateDocumentConfig DocumentConfig
{
get
{
return TemplateDocumentConfig.Default;
}
} public TemplateDocument Document
{
get;
private set;
} public string ConfigFile { get; set; } public Encoding Encoding { get; set; } /// <summary>
/// 是否读取缓存模板
/// </summary>
protected virtual bool IsLoadCacheTemplate
{
get
{
return true;
}
} /// <summary>
/// 装载模板文件
/// </summary>
/// <param name="fileName"></param>
protected virtual void LoadTemplateFile()
{
if (Encoding == null)
{
Encoding = System.Text.Encoding.UTF8;
}
this.Document = null;
if (this.IsLoadCacheTemplate)
{
//测试缓存模板文档
this.Document = TemplateDocument.FromFileCache(ConfigFile, Encoding, this.DocumentConfig);
}
else
{
//测试实例模板文档
this.Document = new TemplateDocument(ConfigFile, Encoding, this.DocumentConfig);
}
} /// <summary>
/// 请先调用LoadTemplateFile方法
/// </summary>
/// <returns></returns>
public string RenderText()
{
return this.Document.GetRenderText();
} public string RenderSimpleText(object obj,string Name)
{
this.LoadTemplateFile();
this.Document.Variables.SetValue(Name, obj);
return RenderText();
}
}

2. 调用代码

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

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

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

 <html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<link href="../Style/css/common.css" rel="stylesheet" type="text/css" />
<link href="../Style/css/user.orderinfo.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
function adddeliver() {
window.open("appdeliver.aspx?orderno="+<%=orderno %>);
}
</script>
</head>
<body>
<div id="process" class="section4">
<div class="node fore ready">
<ul>
<li class="tx1">&nbsp;</li>
<li class="tx2" style="padding-left: 20px">提交订单</li>
<li class="tx3" style="padding-left: 80px">
{$:order.OrderTime} </li></ul>
</div>
<div class="proce ready ">
<ul>
<li class="tx1">&nbsp;</li></ul>
</div>
<vt:if var="order.OrderStatus" value="-1" >
<div class="node ready">
<ul>
<li class="tx1">&nbsp;</li>
<li class="tx2">订单关闭</li>
<li class="tx3"></li>
</ul>
</div>
<vt:else>
<vt:if var="order.PayStatus" value="" >
<div class="node wait">
<ul>
<li class="tx1">&nbsp;</li>
<li class="tx2">暂未支付</li>
<li class="tx3"></li>
</ul>
</div>
<div class=" proce wait ">
<ul>
<li class="tx1">&nbsp;</li></ul>
</div>
<vt:elseif value="" >
<div class="node ready">
<ul>
<li class="tx1">&nbsp;</li>
<li class="tx2">支付确认中</li>
<li class="tx3"></li>
</ul>
</div>
<div class=" proce doing ">
<ul>
<li class="tx1">&nbsp;</li></ul>
</div>
<vt:elseif value="" >
<div class="node ready">
<ul>
<li class="tx1">&nbsp;</li>
<li class="tx2">付款成功</li>
<li class="tx3"></li>
</ul>
</div>
<div class=" proce ready ">
<ul>
<li class="tx1">&nbsp;</li></ul>
</div>
</vt:if>
</vt:if>
</div>
</body>
</html>

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

谢谢--

使用VTemplate模板引擎动态生成订单流程图的更多相关文章

  1. VTemplate模板引擎的使用--高级篇

    VTemplate模板引擎的使用--高级篇 在网站中,经常会有某个栏目的数据在多个页面同时使用到.比如新闻网站或电子商务网站的栏目列表,几乎在很多页面都会显示栏目导航.对于这种多个页面同时使用到的“数 ...

  2. VTemplate模板引擎的使用--进阶篇

    1.<vt:template>与<vt:include>标签的不同 <vt:template>和<vt:include> 标签都包含file属性,如果这 ...

  3. SpringBoot获取Freemarker模板引擎,生成HTML代码

    今天用Ajax异步添加评论,加载Freemarker模板引擎,生成模板模块 1.新建Freemarker模板 <li id="${comment.oId}"> < ...

  4. VTemplate模板引擎的使用--入门篇

    1.什么是VTemplate模板引擎? 详细请点击这里. 2.怎样使用VTemplate模板引擎? 第1步: 下载VTemplate模板引擎的最新库文件(从这里下载),下载回来后将库文件引入到你的项目 ...

  5. 使用 Velocity 模板引擎快速生成代码(zhuan)

    http://www.ibm.com/developerworks/cn/java/j-lo-velocity1/ ****************************************** ...

  6. 使用Velocity 模板引擎快速生成代码

    Velocity 模板引擎介绍 在现今的软件开发过程中,软件开发人员将更多的精力投入在了重复的相似劳动中.特别是在如今特别流行的MVC架构模式中,软件各个层次的功能更加独立,同时代码的相似度也更加高. ...

  7. Java使用 VelocityEngine模板引擎快速生成HTML等各种代码

    https://blog.csdn.net/icannotdebug/article/details/79725297 一.简介 Velocity 是一个基于 Java 的模板引擎框架,提供的模板语言 ...

  8. 使用Themleaf 模板引擎手动生成html文件

    1.为什么要写这一篇呢? 在做一个邮件发送功能的时候,需要发送html邮件,javaMail 发送html 的时候需要有已经生成的html正文,所以需要提前将要发送的内容生成,所以就需要模板引擎来动态 ...

  9. java根据模板HTML动态生成PDF

    原文:https://segmentfault.com/a/1190000009160184 一.需求说明:根据业务需要,需要在服务器端生成可动态配置的PDF文档,方便数据可视化查看. 二.解决方案: ...

随机推荐

  1. Linux 数据 CD 刻录

    http://www.cyberciti.biz/tips/linux-burning-multi-session-cds-on-linux.html #mkisofs -dvd-video -inp ...

  2. debian系(Ubuntu)安装jenkins(持续集成)

    wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add - sudo sh -c 'ec ...

  3. hook技术分类

    1.HOOK SERVICE TABLE:HOOK SSDT 这种方法对于拦截 NATIVE API 来说用的比较多. SSDT hook,一句话——Windows把需要调用的内核API地址全都存在了 ...

  4. js获取下拉列表(select)选中项的值和文本

    获取下拉列表选中项的值和文本(select) <html> <head> <meta charset="utf-8"/> <title&g ...

  5. 创建C#DLL

    1. 创建classlibrary 2.编写一个COM接口和一个COM类 [Guid("DBE0E8C4-1C61-41f3-B6A4-4E2F353D3D05")] public ...

  6. cf B. Jeff and Periods

    http://codeforces.com/contest/352/problem/B #include <cstdio> #include <cstring> #includ ...

  7. bzoj2965

    http://www.lydsy.com/JudgeOnline/problem.php?id=2965 http://www.tsinsen.com/A1385 平面图网络流. 首先我们要将平面图转 ...

  8. STL中erase的小心使用

    先看如下一道改错题: #include<iostream> #include<vector> using namespace std; void print(vector< ...

  9. hdu4778:状压dp+博弈

    题目大意: 有g种不同颜色的小球,b个袋子,每个袋子里面有若干个每种小球 两人轮流取袋子,当袋子里面的同色小球有s个时,会合并成一个魔法球,并被此次取袋子的人获得 成功获得魔法球的人可以再次取 求二者 ...

  10. Android数据库信息显示在listview上

    Key Points: 1.使用SimpleCursorAdapter将Android数据库信息显示在listview上 adapter = new SimpleCursorAdapter(this, ...