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# DateTime的ToString()方法的使用

    Console.WriteLine("ToShortDateString:" + DateTime.Now.ToShortDateString()); Console.WriteL ...

  2. Linux下修改字符集,转自

    以下转自http://blog.csdn.net/cyuyan112233/article/details/6539122 Linux下修改字符集 locale -a 查询系统支持的字符集 expor ...

  3. SignalR2.0开发实例之——负载均衡

    SignalR 2.0作为一个新的而且强大的通信工具,发布博客之后得到了很多人的支持,谢谢...也有人对性能和架设等问题提出了各种质疑..真的很感谢.. 我特意下载了SignalR 2.0的源码硬着头 ...

  4. C#字节byte类型读取与写入

    //创建文件 //File.Create(@"D:\a.txt"); //Console.WriteLine("创建成功"); ////删除文件 //File. ...

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

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

  6. acm poj1260 dp

    题目大意: 买珍珠,每买一种珍珠需要额外付出十个这种珍珠的钱,但你可以买比这种珍珠高品质的珍珠来替换它(那么就只需要那高品质付出那额外的十个珍珠的钱了,但是每个珍珠的价钱也变化了) 这是一个dp. 令 ...

  7. Linux Shell脚本入门--(linux空设备文件和重定向)>/dev/null 2>&1

    linux空设备文件和重定向 输出/输入重导向 >      >>   <   <<   :>   &>   2&>   2< ...

  8. mysql 5.6 参数详解

    系统变量提供的是各种与服务器配置和功能有关的信息.大部分的系统变量都可以在服务器启动时进行设置.在运行时,每一个系统变量都拥有一个全局值或会话值,或者同时拥有这两个值.许多系统变量都是动态的,也就是说 ...

  9. DataTable 对象 转换为Json 字符串

    /// <summary> /// DataTable 对象 转换为Json 字符串 /// </summary> /// <param name="dt&qu ...

  10. [Mugeda HTML5技术教程之3] Hello World: 第一个Mugeda动画

    今天我们开始我们的第一个Mugeda动画作品,并通过它来看看制作Mugeda动画的一些通用流程.在开始制作之前,请确保你已经拥有一个Mugeda网站的账号.如果还没有,你可以登录 www.mugeda ...