模板维护-模板解析

        关于模板的解析,主要是关于主模板的解析。

        首先来说一下业务逻辑,首先点击树的节点,将树的code付给物资编码,然后通过物资编码去查询主模板(包括主模板ID和主模板信息)和子模板(不带{}的信息);

        如果有{}形式的信息,我们把主模板ID和主模板信息付给String参数,传到前台。在前台,首先判断传过来的String参数是否为空,如果为空则说明没有主模板,否则加载子模板信息。

        解析主模板:

第一步:

        从上面的逻辑中获取到主模板信息是 {:内燃机车,0;电力机车,1;客车,2;货车,3;动车组,4;待报废,5;其他淘汰物资,9;}这种形式的数据。

第二步:

我们对它进行拆分。

定义一个datatable,然后为它分配两个字段:一个ID,一个Name。

        第三步:

切割字符串,先把最前面的两个字符 {: 删除   方法如下:Substring(2, Smatlcate.Length - 2)

字符串则变成了    内燃机车,0;电力机车,1;客车,2;货车,3;动车组,4;待报废,5;其他淘汰物资,9;}

然后我们将最后的 } 去掉   方法如下:.Split(‘}‘)[0].Trim()

字符串则变成了    内燃机车,0;电力机车,1;客车,2;货车,3;动车组,4;待报废,5;其他淘汰物资,9;

我们将最后的分号;去掉  方法如下:TrimEnd(‘;‘)

字符串则变成了    内燃机车,0;电力机车,1;客车,2;货车,3;动车组,4;待报废,5;其他淘汰物资,9

第三步:

这样我们就能进行数组转换了:string[] strArr = Smatlcate.Split(‘;‘) 这是以分号位分隔符进行的数组转换

第四步:

最后我们就可以进行为原先定义的datatable(包含两个地段)循环赋值了,方法如下:

DataRow dr = dt_ChildTemplets.NewRow();

dr["ID"] = strArr[i].Split(‘,‘)[1].Trim();

dr["NAME"] = "系列:" + strArr[i].Split(‘,‘)[0].Trim() + "," + strArr[i].Split(‘,‘)[1].Trim();

最后我们就成功的将数组的信息传到datatable中去了。

dt和下拉列表进行数据绑定,就可以赋值了。

         后续还会有子模板解析和模板测试的博文。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-13 00:44:11

模板维护-模板解析的相关文章

smarty模板引擎原理解析

//php 控制器文件 <?php//引入模板引擎文件include("20130304.php");$smarty = new TinySmarty();$qq_numbers=array('a1'=>'12333','a2'=>'2222222','a3'=>'333333','a4'=>'3333333');$smarty->assign($qq_numbers);$smarty->assign('title','这是我的QQ号码');$

Django中模板总结[模板语言,模板继承,CSRF攻击,反向解析]

模板 概述 作为Web框架,Django提供了模板,用于编写html代码,还可以嵌入模板代码更快更方便的完成页面开发,再通过在视图中渲染模板,将生成最终的html字符串返回给客户端浏览器.模版致力于表达外观,而不是程序逻辑.模板的设计实现了业务逻辑view与显示内容template的分离,一个视图可以使用任意一个模板,一个模板可以供多个视图使用. 创建模板文件夹 在项目的文件里面定义一个templates文件夹 在创建的文件夹里面再创建一个文件夹为每个应用的html文件夹 起名为和应用名同名的文

制作织梦模板channelartlist超强解析

很多新手站长不懂得使用DEDECMS模板自带的{dede:channelartlist}标签只能获取当前栏目的子栏目的内容列表,在首页模板中就是顶级栏目的内容列表,在做一些网站的时候就会出现一些缺陷.比如说我要在一个没有下级栏目的栏目中使用{dede:channelartlist}标签的话就不会获得任何内容.有时候我们发现网站在列表页和内容页不够充实的时候,又怕麻烦去手动添加一些内容列表(所添加的内容也就是最新.热门.推荐文档等这些全局标签),又不想去制作多个列表和内容页模板使其内容丰富起来,如

Flask Web Development - Flask 模板1 - 模板机制&Jinja2引擎

节选自PartI Chapter3,这个chapter主要讲模板工作原理,这里讲的就是Jinja2这个模板,另外还提到了Flask-Bootstrap及Flask-Moment两个插件,前者对Flask使用Bootstrap做了些封装,后者对moment.js做了些封装.内容较多,估计分开搞. 模板存在的意义 可维护性高的代码是结构良好且整洁的. 当用户在网站注册一个账户时,他在表单里填入邮箱跟密码,并点击提交按钮.在server端就收到一个包含这些数据的request,再由Flask分发到相应

函数模板与模板函数及模板类与模板的特化

函数模板( Function templates) * 模板(Templates)使得我们可以生成通用的函数,这些函数能够接受任意数据类型的参数,可返回任意类型的值,而不需要对所有可能的数据类型进行函数重载.这在一定程度上实现了宏(macro)的作用.它们的原型定义可以是下面两种中的任何一个: template <class identifier> function_declaration; template <typename identifier> function_decla

模板系列(一) 模板的模板参数

前面我们写过类似的Stack: template <typename T, typename Alloc = std::vector<T> > class Stack { public: void push(const T &); void pop(); T top() const; bool empty() const; private: Alloc _cont; }; 那么我们使用的时候需要这样: Stack<string, list<string>

畅通工程续 (SPFA模板Floy模板)

http://acm.hdu.edu.cn/showproblem.php?pid=1874 SPFA #include <iostream> #include <stdio.h> #include <string.h> #include <stdlib.h> #define N 1000001 using namespace std; int n,m; int v[202],dis[202]; struct node { int x,y,z,next; }

Struts2中使用Velocity模板时模板资源路径配置问题

在Struts2中使用Velocity模板时,如何以相对与Web工程的路径来配置模板资源文件路径这个问题网上千篇一律的来自Velocity官方文档.官方文档中指出如果是Web工程的话,模板的相对路径是工程根路径,今天在使用的时候有如下配置: Velocity.properties(默认在WEB-INF下): resource.loader =file, classclass.resource.loader.description = Velocity Classpath Resource Loa

C++提高1 【泛型编程】函数模板 类模板

[本文谢绝转载] [泛型编程] 函数模板 为什么会有函数模板 现象: 函数的业务逻辑一样 函数的参数类型不一样 [最常用]函数模板  显式的调用 [不常用]类型推导 多个参数,参数定义了必须要用 函数模板,实现int类型数组,char字符串排序: 函数模板 与 普通函数的本质区别 函数模板 和 普通函数在一起 的调用型研究: C++是如何支持函数模板机制的? 函数模板机制结论 类模板 类模板的定义 类模板做函数的参数 类模板的派生成普通类 模板类的派生成模板类 复数类,所有函数都写在类的内部,运