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. BFC——块级格式上下文

    BFC中的B指的是block,对应的还有IFC,I指的是inline.对于BFC的理解可以参考层叠上下文.页面中,盒子的排布规则,是生效在对应的BFC中.两个BFC中的布局互不影响.页面的本身的根本身 ...

  2. (转)在Repeater中嵌套使用Repeater

    在一般的网站中浏览类别的用户控件通常都位于大多数 ASP.NET 页的左边,它使用户能够按类别快速的查找产品.最近遇到一个客户,因为在他网站上展示的产品并不多,所以要求在原有类别浏览的基础上将产品也加 ...

  3. (转)ASP.NET版本的Kindeditor插件的使用(同步)

    昨天老大让我自己下载一个kindeditor说要放到“描述”功能中,并且不能提交(一边在textarea中写一边在label控件中将数据显示出来),由于从来没弄过,实在费了一翻劲.所以将此记录下来,一 ...

  4. eclipse 插件 最新 eclipse4.x 插件

    Properties  Editor:  中文显示属性配置文件 help ——> install new  SoftWare ——>add Name: xx Location: http: ...

  5. 织梦 {dede:list}列表按多种排序显示

    orderby='sortrank' 文档排序方式 orderby='hot' 或 orderby='click' 表示按点击数排列 orderby='sortrank' 或 orderby='pub ...

  6. hdoj 1233 还是畅通工程---最小生成树---prime算法

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1233 可以用Kruskal来做,不过当图的边比较稠密的时候用prime会更快一些. AC代码:296MS ...

  7. Zepto源码笔记(三)

    ps:本文中"组装成成数组"指的是若元素个数大于1则返回数组,若元素只有1个则返回元素本身 以下函数是$.fn该对象的方法 ready(callback) 通过readyRE正则表 ...

  8. ECSTORE2.0 下载 (变量标签)

    条目 用途 备注 coupon.mc.use_times 优惠券可用次数 - security.guest.enabled 是否支持非会员购物 - site.version version的最后修改时 ...

  9. 使用PowerDesigner 15对现有数据库进行反向工程(图解教程)

    1.启动PD 2.菜单:File->Reverse Engineer ->Database 出来New Physical Data Model对话框 点击“确定”按钮,弹出Database ...

  10. Python实现合并排序MergeSort

    def merge(sort_list, start, mid, end): left_list = sort_list[start:mid] right_list = sort_list[mid:e ...