zoukankan      html  css  js  c++  java
  • 模板维护-模板解析

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

            首先来说一下业务逻辑,首先点击树的节点,将树的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和下拉列表进行数据绑定,就可以赋值了。


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



  • 相关阅读:
    IE9以下程序开发不兼容项目罗列
    Flutter编程:Flutter命令行的学习
    Git merge 和 rebase 进一步比较
    Git merge rebase cherry-pick 以及 游离commit 的测试
    C++指针传递和引用传递的区别 (转载整理)
    git 填坑之 git 暂存区忽略文件
    小众软件:Windows 下优化软件推荐—— Dism++ | 强迫症晚期患者福音
    pip 安装库的时候使用豆瓣镜像 提升效率
    gitignore 忽略某文件夹下 非某后缀名的文件
    小众软件:画简洁风格的原型图
  • 原文地址:https://www.cnblogs.com/xzpblog/p/5117918.html
Copyright © 2011-2022 走看看