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. django: db howto - 1

    以在 Django 中使用 MySQL 为例,首先要安装 MySQL 和 MySQL-python 组件,确保 python 能执行 import MySQLdb. MySQL 中创建数据库: [ro ...

  2. CSS 特殊样式设置集合

    1. 父窗口宽度不定,要求内部两个子块, 第一个子块宽度固定,第二个子块宽度自适应. 第一个子块宽度固定,定位为绝对定位 position:absolute;  第二个子块设置margin-left即 ...

  3. 跨域访问-JSONP

    JSONP即JSON with Padding.由于同源策略的限制,XmlHttpRequest只允许请求当前源(域名.协议.端口)的资源.如果要进行跨域请求,我们可以通过使用 html的script ...

  4. c - 比较字符串的大小

    c的标准库中当然有现成的比较字符串的函数<string.h>中的 strcmp int __cdecl strcmp(_In_z_ const char * _Str1, _In_z_ c ...

  5. arcgis server "System.Web.Services.Protocols.SoapException: Error processing server request".

    在 Arcgis Server 10中创建第一个程序,运行的时候就报错:System.Web.Services.Protocols.SoapException: Error processing se ...

  6. js 日期控件 可以显示为和历

    日期控件的js <!-- /** * Calendar * @param beginYear 1990 * @param endYear 2010 * @param language 0(zh_ ...

  7. OpenGL ES 2.0 顶点着色器的妙用

    1.飘扬的旗帜(水面起伏) 基本原理 绘制一帧画面时由顶点着色器根据一定的规则变换各个顶点的位置,即可得到旗帜迎风飘扬的效果. 为了使旗帜的飘动过程比较平滑,采用基于正弦曲线的顶点位置变换规则.

  8. 阿里大鱼simplexmlelement object 取值PHP

    SimpleXMLElement Object(    [code] => 15    [msg] => Remote service error    [sub_code] => ...

  9. kakfa-性能相关

    1.增大partition最大连接数 kafka的集群有多个Broker服务器组成,每个类型的消息被定义为topic,同一topic内部的消息按照一定的key和算法被分区(partition)存储在不 ...

  10. C++ 继承和包含的区别?

    在<代码大全>这本书的第六章中提到了有关包含与继承的一些原则,我摘取如下: 一.包含("has a") 包含表示一个类含有一个基本数据元素或对象.包含是面向对象编程的主 ...