重复性的工作交给代码生成器就好,这里分享几套模板,

1.从数据库抓取字段,生成Table元素,这个在web开发中很有用

 <%--
Name:
Author:
Description:
--%>
<%@ Template Language="C#" TargetLanguage="Text" %> <%@ Assembly Name="SchemaExplorer" %>
<%@ Import Namespace="SchemaExplorer" %>
<%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema"
Category="Context"
Description="Table that the stored procedures should be based on." %>
<%@ Property Name="SortColsNum" Type="System.Int32" Default="" Optional="True" Category="Int" Description="每行显示栏数" %> <form id="f_edit">
<table cellpadding="" cellspacing="" style="width: 100%; text-align: left; table-layout: fixed; border: 1px solid #BABABA; padding: 8px 4px 4px 4px;margin-bottom:4px ">
<% int i=;%>
<% foreach (ColumnSchema column in this.SourceTable.Columns)
{ %>
<% i++; %>
<% if (i%SortColsNum== || SortColsNum==)
{ %>
<tr>
<% } %>
<td class="myothertdnm"><%=GetName(GetColumnName( column.Name)).ToUpper()%>:</td>
<% if (i%SortColsNum==)
{ %>
<td class="myothertdlast"><input type="text" name="<%=GetName(GetColumnName( column.Name))%>" class="easyui-validatebox" required="true" validtype="length[1,5]" style="width:96%;" /></td>
<% } %>
<% else
{ %>
<td class="myothertdnm"><input type="text" name="<%=GetName(GetColumnName( column.Name))%>" class="easyui-validatebox" required="true" validtype="length[1,5]" style="width:96%;" /></td>
<% } %>
<% if (i%SortColsNum==)
{ %>
</tr>
<% } %>
<% } %> <% if ((i%SortColsNum!= && i%SortColsNum!=)||(SortColsNum<i&&SortColsNum!=))
{ %>
</tr>
<% } %>
</table>
</form> <script runat="template">
public string GetClassName(string name)
{
string returnName=""; if(name.Length >)
{
string[] names = name.Split('_');
foreach(string item in names)
{ returnName+= GetFunctionStr(item);
}
returnName ="Ent"+returnName;
} return returnName;
}
public string GetColumnName(string name)
{
string returnName=""; if(name.Length >)
{
string[] names = name.Split('_');
foreach(string item in names)
{ returnName+= GetFunctionStr(item);
}
}
return returnName;
} public string GetFunctionStr(string name)
{
string nameLower;
if(name.Length >)
{
nameLower = name.ToLower();
return nameLower.Substring(,).ToUpper()+nameLower.Substring();
}
return "";
} public string GetType(SchemaExplorer.ViewColumnSchema field)
{
string nativeType = field.NativeType.ToLower();
string result = "no:"+nativeType; switch(nativeType)
{
case "nvarchar2": result ="string";break;
case "varchar2": result ="string";break;
case "char": result ="string";break;
case "number": result ="decimal?";break;
case "long": result ="double";break;
case "date": result ="System.DateTime?";break;
} switch(field.DataType)
{
case DbType.AnsiString:result= "string" ;break;
case DbType.AnsiStringFixedLength:result= "string" ;break;
case DbType.Boolean:result= "bool" ;break;
case DbType.Date:result= "DateTime?" ;break;
case DbType.Double:result="double?" ;break;
case DbType.Decimal:result="decimal?" ;break;
case DbType.DateTime:result= "DateTime?" ;break;
case DbType.Int32:result= "int?" ;break; } return result;
} public string GetName(string name)
{
return name;
}
</script>

从数据库Table生成html

CodeSmith可以去网上下载,pj版的比较多,涉及版权,我就不放了,

基本上重复性的工作都可以交给它

CodeSmith模板的更多相关文章

  1. CodeSmith模板代码生成实战详解

    前言 公司项目是基于soa面向服务的架构思想开发的,项目分解众多子项目是必然的.然而子项目的架子结构种类也过多的话,就会对后期的开发维护产生一锅粥的感觉.为了尽可能的在结构层避免出现这种混乱的现象,我 ...

  2. 软件代码生成之Codesmith模板.netTiers

              .netTiers模板到2006年就诞生了, 到今天最后一次更新是12/17/2013, 支持.NET 4.5 and Visual Studio 2012 and 2013. n ...

  3. CodeSmith模板生成

    转:http://blog.csdn.net/jason_ldh/article/details/9887073 一.            工具设置 CodeSmith默认是不支持中文的,那么我们必 ...

  4. CSLA框架的codesmith模板改造

    一直有关注CSLA框架,最近闲来无事,折腾了下,在最新的r3054版本基础上修改了一些东西,以备自己用,有兴趣的园友可以下载共同研究 1.添加了默认的授权规则 如果是列表对象则生成列表权限,User的 ...

  5. dapper的增、删、查改的CodeSmith模板

    <%@ Template Language="C#" TargetLanguage="Text" %> <%@ Property Name=& ...

  6. 在Windows7 下调试CodeSmith 注意事项

    编写CodeSmith模板和编写程序一样,也需要进行调试,CodeSmith支持使用CLR’s Just-in-Time debugger调试模板. 要调试模板,首先要在CodeTemplate声明中 ...

  7. 利用CodeSmith生成抽象工厂步骤

    其实CodeSmith挺好的,帮我们主动生成不少代码,并且代码质量不错,下面就来介绍一下利用CodeSmith生成抽象工厂步骤 打开codesmith模板的buildall 注意path的设置,因为后 ...

  8. Dreamweaver中打开CodeSmith文件

    电脑环境:Windows2008+Dreamweaver 8英文版本 问题描述:Dreamweaver中默认打开文档时不支持打开CodeSmith模板文件对应的.cst后缀名文件,截图如下: 解决步骤 ...

  9. 分享一套 CodeSmit 代码生成模板。

    分享一套 CodeSmit 代码生成模板. 住博客园 5 年了,以前也发过一些博文,但都在 一天后 / 几周后 / 几年后 将它删了:因为感觉代码写得不好:不清晰或侵入太大,哪怕只有一句侵入. 可是最 ...

随机推荐

  1. session过期,登录页被内嵌iframe的解决方案

    在登录页的js加上: if(window !=top){ top.location.href = location.href; } 就可以完美解决这个问题!

  2. linux查看一条命令的执行结果是1还是0

    echo $? 0为成功 其他为失败

  3. jquery.easyui使用详解,和遇到的问题,提供大家在使用的时候少走弯路(二)

    上次解释了几个易犯错的地方,当然对于大神们那都是小菜一碟了,今天来说说后台请求数据,分页,返回json数据 废话不多说献上代码 private string QueryList(ArrayList a ...

  4. ubuntu 14.04安装右键打开终端功能

    命令行运行,安装完成后需重启: sudo apt-get install nautilus-open-terminal

  5. linux命令行将已有项目提交到github

    之前用git是在windows下用git的图形化界面进行操作的,这次有一个写了几天的小项目想提交到git上,linux命令行下面没有图形化的界面,所以全部需要git命令来操作. 实践之后,主要是下面几 ...

  6. node.js Websocket实现扫码二维码登录---GoEasy

    最近在做一个扫码登录功能,为此我还在网上搜了一下关于微信的扫描登录的实现方式.当这个功能完成了后,我决定将整个实现思路整理出来,方便自己以后查看也方便其他有类似需求的程序猿些. 要实现扫码登录我们需要 ...

  7. 用MFC如何对子对话框进行初始化

    通常情况下,我们在创建子对话框的类时.cpp文件中并不会自动生成initdialog函数,但我们的很多操作都需要用到initdialog初始化函数,如果你直接在类的头文件中去定义一个初始化函数,然后在 ...

  8. apk下载解决微信扫一扫问题

    .btn{display: block;width:100%;padding:10px;border:none;cursor: pointer;outline: none;} .btn-primary ...

  9. 转载《Android Handler、Message》

    之前也是由于周末通宵看TI3比赛,一直没找到时间写博客,导致已经有好久没更新了.惭愧!后面还会恢复进度,尽量保证每周都写吧.这里也是先恭喜一下来自瑞典的Alliance战队夺得了TI3的冠军,希望明年 ...

  10. Codeforces Round #173 (Div. 2)

    A. Bit++ 模拟. B. Painting Eggs 贪心,每个物品给使差值较小的那个人,根据题目的约数条件,可证明贪心的正确性. C. XOR and OR \(,,00 \to 00,01 ...