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. c#.net防止按F5刷新页面重复提交的方法

    在网上购物的过程中,提交完一个页面后,如果此时按f5刷新,则会弹出一个提示:如果继续,则会重新发送提交我们刚才提交的内容,这个问题应该规避掉,不然总是重复提交付款,那可不是件好事. 在c#.net中的 ...

  2. Discuz!NT 3.5.2正式版与Asp.net网站会员信息整合

    Discuz!NT 提供了很多对外的接口利于与别的网站进行整合,经本人亲测,觉得开放的接口还是挺到位的.开发.测试一次通过,只不过api文档寻找无门,只能自己琢磨,费了不少周折,不过,功夫不负有心人, ...

  3. 怎么用C#获取Scenario step在specflow里

    公司最近在用specflow 这种BDD的模式,但PM还是想把case再存进TestManager里面一份儿一遍后期集成TestManager 自动runcase用.所以我们需要获取每个scenari ...

  4. OC基础 内存管理

    OC基础  内存管理 我们所了解的c语言内存管理,如下: (1)c语言的内存分配:char *p = (char*)malloc(100*sizeof(char)); (2)c语言的内存释放:free ...

  5. ThinkPHP自动验证

    自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证. 验证规则 数据验证可以进行数据类型.业务规则.安全判断等方面的验证操作.数据验证有两 ...

  6. 《图解CSS3》——笔记(一)

    作者:大漠 勘误:http://www.w3cplus.com/book-comment.html 2014年7月14日14:46:35 第一章  揭开CSS3的面纱 1.1  什么是CSS3 CSS ...

  7. commons-logging log4j的联系区别

    1.Apache通用日志接口(commons-logging.jar)介绍 Apache Commons包中的一个,包含了日志功能,必须使用的jar包.这个包本身包含了一个Simple Logger, ...

  8. 修改Activity的继承类导致程序闪退

    今天对老项目重构,重新写了BaseActivity.其中有一处改动是把原来的父类Activity改成了AppCompatActivity. 这一处的改动导致了程序在启动的时候直接闪退. 查看log输出 ...

  9. WPF中TextBox限制输入不起作用的问题

    最近再用textbox做限制输入时遇到一个莫名其妙的问题: 首先看代码: <TextBox  Name="txtip1" Height="40" Widt ...

  10. java 发送 http 请求

    public class VoteHandler implements IVoteHandler { private static final Logger LOGGER = LoggerFactor ...