zoukankan
html css js c++ java
Ext生成GridView的CodeSmith模板
<%--
Name:
<%=
GetClassName(SourceTable)
%>
Author: sunfishlu
Description:
--%>
<%
@ CodeTemplate Language
=
"
C#
"
TargetLanguage
=
"
JScript
"
Description
=
"
Generates a very simple business object.
"
ResponseEncoding
=
"
UTF-8
"
%>
<%
@ Property Name
=
"
NameSpace
"
Type
=
"
String
"
Category
=
"
Text
"
Default
=
"
Sunfishlu.
"
Description
=
"
The namespace to use for this class
"
%>
<%
@ Property Name
=
"
SourceTable
"
Type
=
"
SchemaExplorer.TableSchema
"
Category
=
"
Context
"
Description
=
"
Table that the object is based on.
"
%>
<%
@ Assembly Name
=
"
SchemaExplorer
"
%>
<%
@ Assembly Name
=
"
System.Data
"
%>
<%
@ Import Namespace
=
"
SchemaExplorer
"
%>
<%
@ Import Namespace
=
"
System.Data
"
%>
/**/
/*
*
* @author sunfish
*/
var storeMain
=
new
Ext.data.Store(
{
proxy:
new
Ext.data.HttpProxy(
{
url:
'
<%= GetUrlName(SourceTable) %>
'
}
),
reader:
new
Ext.data.JsonReader(
{
root:
'
data
'
,
id:
'
<%= SourceTable.PrimaryKey.MemberColumns[0].Name %>
'
,
totalProperty:
'
totalCount
'
,
fields:
[
<%
for
(
int
i
=
0
; i
<
SourceTable.Columns.Count;
++
i)
{
%>
<%=
GetMemberVariableName(SourceTable.Columns[i])
%><%
if
(i
<
SourceTable.Columns.Count
-
1
)
{
%>
,
<%
}
%><%
}
%>
]
}
),
remoteSort:
true
}
);
Ext.onReady(function()
{
Ext.BLANK_IMAGE_URL
=
'
http://images.cnblogs.com/s.gif
'
;
Ext.QuickTips.init();
var grid
=
new
Ext.grid.GridPanel(
{
store:storeMain,
columns:
[
new
Ext.grid.RowNumberer(),
<%
for
(
int
i
=
0
; i
<
SourceTable.Columns.Count; i
++
)
{
%>
{header:
"
<%=GetHeaderName(SourceTable.Columns[i])%>
"
,align:
'
center
'
,sortable:
true
,dataIndex:
<%=
GetMemberVariableName(SourceTable.Columns[i])
%>
}
<%
if
(i
<
SourceTable.Columns.Count
-
1
)
{
%>
,
<%
}
%>
<%
}
%>
],
renderTo:
'
grid
'
,
viewConfig:
{forceFit:
true
}
,
trackMouseOver:
true
,
loadMask:
true
,
autoShow :
true
,
autoScroll:
true
,
loadMask:
{msg:
"
数据加载中,请稍等
"
}
,
bbar:
new
Ext.PagingToolbar(
{
pageSize:
20
,
store:storeMain,
displayInfo:
true
,
displayMsg:
'
当前显示 {0} - {1}条记录 /共 {2}条记录
'
,
emptyMsg:
"
没有数据
"
}
)
}
);
storeMain.load(
{
params
:
{start:
0
, limit:
20
,sort:
'
<%= SourceTable.PrimaryKey.MemberColumns[0].Name %>
'
,dir:
'
desc
'
}
}
);
}
);
<
script runat
=
"
template
"
>
//
My functions here.
public
string
GetClassName(TableSchema table)
{
if
(table
==
null
)
{
return
null
;
}
return
table.Name
+
"
Grid
"
;
}
public
string
GetUrlName(TableSchema table)
{
if
(table
==
null
)
{
return
null
;
}
return
table.Name
+
"
Grid
"
+
"
.aspx
"
;
}
script
#region
script
public
string
GetMemberVariableDeclarationStatement(ColumnSchema column)
{
return
GetMemberVariableDeclarationStatement(
"
private
"
, column);
}
public
string
GetMemberVariableDeclarationStatement(
string
protectionLevel, ColumnSchema column)
{
string
statement
=
protectionLevel
+
"
"
;
statement
+=
GetCSharpVariableType(column)
+
"
"
+
GetMemberVariableName(column);
string
defaultValue
=
GetMemberVariableDefaultValue(column);
if
(defaultValue
!=
""
)
{
statement
+=
"
=
"
+
defaultValue;
}
statement
+=
"
;
"
;
return
statement;
}
public
string
GetConstructorParameters()
{
string
ret
=
""
;
foreach
(ColumnSchema column
in
SourceTable.Columns)
{
ret
+=
GetCSharpVariableType(column)
+
"
"
+
GetCamelCaseName(GetPropertyName(column))
+
"
,\n\t\t\t
"
;
}
return
ret.Substring(
0
, ret.Length
-
5
);
}
public
string
GetAssignValue()
{
string
ret
=
""
;
foreach
(ColumnSchema column
in
SourceTable.Columns)
{
ret
+=
GetMemberVariableName(column)
+
(
new
String(
'
'
, GetPropertyNameMaxLength()
-
GetPropertyNameLength(column)))
+
"
=
"
+
GetCamelCaseName(GetPropertyName(column))
+
"
;\n\t\t\t
"
;
}
return
ret;
}
public
string
GetReaderAssignmentStatement(ColumnSchema column,
int
index)
{
string
statement
=
"
if (!reader.IsDBNull(
"
+
index.ToString()
+
"
))
"
;
statement
+=
GetMemberVariableName(column)
+
"
=
"
;
if
(column.Name.EndsWith(
"
TypeCode
"
)) statement
+=
"
(
"
+
column.Name
+
"
)
"
;
statement
+=
"
reader.
"
+
GetReaderMethod(column)
+
"
(
"
+
index.ToString()
+
"
);
"
;
return
statement;
}
public
string
GetCamelCaseName(
string
value)
{
//
return value.Substring(0, 1).ToLower() + value.Substring(1);
return
value;
}
public
string
GetMemberVariableName(ColumnSchema column)
{
//
string propertyName = GetPropertyName(column);
string
propertyName
=
column.Name;
string
memberVariableName
=
"
'
"
+
GetCamelCaseName(propertyName)
+
"
'
"
;
return
memberVariableName;
}
public
string
GetHeaderName(ColumnSchema column)
{
//
string propertyName = GetPropertyName(column);
string
propertyName
=
column.Name;
string
memberVariableName
=
GetCamelCaseName(propertyName);
return
memberVariableName;
}
public
string
GetPropertyName(ColumnSchema column)
{
string
propertyName
=
column.Name;
if
(propertyName
==
column.Table.Name
+
"
Name
"
)
return
"
Name
"
;
if
(propertyName
==
column.Table.Name
+
"
Description
"
)
return
"
Description
"
;
if
(propertyName.EndsWith(
"
TypeCode
"
)) propertyName
=
propertyName.Substring(
0
, propertyName.Length
-
4
);
return
propertyName;
}
public
int
GetPropertyNameLength(ColumnSchema column)
{
return
(GetPropertyName(column)).Length;
}
public
int
GetPropertyNameMaxLength()
{
int
ret
=
0
;
foreach
(ColumnSchema column
in
SourceTable.Columns)
{
ret
=
ret
<
GetPropertyNameLength(column)
?
GetPropertyNameLength(column):ret;
}
return
ret;
}
public
string
GetMemberVariableDefaultValue(ColumnSchema column)
{
if
(column.IsPrimaryKeyMember)
{
return
""
;
}
switch
(column.DataType)
{
case
DbType.Guid:
{
return
"
Guid.Empty
"
;
}
case
DbType.AnsiString:
case
DbType.AnsiStringFixedLength:
case
DbType.String:
case
DbType.StringFixedLength:
{
return
"
String.Empty
"
;
}
default
:
{
return
""
;
}
}
}
public
string
GetCSharpVariableType(ColumnSchema column)
{
if
(column.Name.EndsWith(
"
TypeCode
"
))
return
column.Name;
switch
(column.DataType)
{
case
DbType.AnsiString:
return
"
string
"
;
case
DbType.AnsiStringFixedLength:
return
"
string
"
;
case
DbType.Binary:
return
"
byte[]
"
;
case
DbType.Boolean:
return
"
bool
"
;
case
DbType.Byte:
return
"
byte
"
;
case
DbType.Currency:
return
"
decimal
"
;
case
DbType.Date:
return
"
DateTime
"
;
case
DbType.DateTime:
return
"
DateTime
"
;
case
DbType.Decimal:
return
"
decimal
"
;
case
DbType.Double:
return
"
double
"
;
case
DbType.Guid:
return
"
Guid
"
;
case
DbType.Int16:
return
"
short
"
;
case
DbType.Int32:
return
"
int
"
;
case
DbType.Int64:
return
"
long
"
;
case
DbType.Object:
return
"
object
"
;
case
DbType.SByte:
return
"
sbyte
"
;
case
DbType.Single:
return
"
float
"
;
case
DbType.String:
return
"
string
"
;
case
DbType.StringFixedLength:
return
"
string
"
;
case
DbType.Time:
return
"
TimeSpan
"
;
case
DbType.UInt16:
return
"
ushort
"
;
case
DbType.UInt32:
return
"
uint
"
;
case
DbType.UInt64:
return
"
ulong
"
;
case
DbType.VarNumeric:
return
"
decimal
"
;
default
:
{
return
"
__UNKNOWN__
"
+
column.NativeType;
}
}
}
public
string
GetReaderMethod(ColumnSchema column)
{
switch
(column.DataType)
{
case
DbType.Byte:
{
return
"
GetByte
"
;
}
case
DbType.Int16:
{
return
"
GetInt16
"
;
}
case
DbType.Int32:
{
return
"
GetInt32
"
;
}
case
DbType.Int64:
{
return
"
GetInt64
"
;
}
case
DbType.AnsiStringFixedLength:
case
DbType.AnsiString:
case
DbType.String:
case
DbType.StringFixedLength:
{
return
"
GetString
"
;
}
case
DbType.Boolean:
{
return
"
GetBoolean
"
;
}
case
DbType.Guid:
{
return
"
GetGuid
"
;
}
case
DbType.Currency:
case
DbType.Decimal:
{
return
"
GetDecimal
"
;
}
case
DbType.DateTime:
case
DbType.Date:
{
return
"
GetDateTime
"
;
}
case
DbType.Binary:
{
return
"
GetBytes
"
;
}
default
:
{
return
"
__SQL__
"
+
column.DataType;
}
}
}
public
string
GetSqlDbType(ColumnSchema column)
{
switch
(column.NativeType)
{
case
"
bigint
"
:
return
"
BigInt
"
;
case
"
binary
"
:
return
"
Binary
"
;
case
"
bit
"
:
return
"
Bit
"
;
case
"
char
"
:
return
"
Char
"
;
case
"
datetime
"
:
return
"
DateTime
"
;
case
"
decimal
"
:
return
"
Decimal
"
;
case
"
float
"
:
return
"
Float
"
;
case
"
image
"
:
return
"
Image
"
;
case
"
int
"
:
return
"
Int
"
;
case
"
money
"
:
return
"
Money
"
;
case
"
nchar
"
:
return
"
NChar
"
;
case
"
ntext
"
:
return
"
NText
"
;
case
"
numeric
"
:
return
"
Decimal
"
;
case
"
nvarchar
"
:
return
"
NVarChar
"
;
case
"
real
"
:
return
"
Real
"
;
case
"
smalldatetime
"
:
return
"
SmallDateTime
"
;
case
"
smallint
"
:
return
"
SmallInt
"
;
case
"
smallmoney
"
:
return
"
SmallMoney
"
;
case
"
sql_variant
"
:
return
"
Variant
"
;
case
"
sysname
"
:
return
"
NChar
"
;
case
"
text
"
:
return
"
Text
"
;
case
"
timestamp
"
:
return
"
Timestamp
"
;
case
"
tinyint
"
:
return
"
TinyInt
"
;
case
"
uniqueidentifier
"
:
return
"
UniqueIdentifier
"
;
case
"
varbinary
"
:
return
"
VarBinary
"
;
case
"
varchar
"
:
return
"
VarChar
"
;
default
:
return
"
__UNKNOWN__
"
+
column.NativeType;
}
}
public
string
GetPrimaryKeyType(TableSchema table)
{
if
(table.PrimaryKey
!=
null
)
{
if
(table.PrimaryKey.MemberColumns.Count
==
1
)
{
return
GetCSharpVariableType(table.PrimaryKey.MemberColumns[
0
]);
}
else
{
throw
new
ApplicationException(
"
This template will not work on primary keys with more than one member column.
"
);
}
}
else
{
throw
new
ApplicationException(
"
This template will only work on tables with a primary key.
"
);
}
}
public
override
string
GetFileName()
{
return
this
.GetClassName(
this
.SourceTable)
+
"
.cs
"
;
}
public
string
GetCamelCaseNameTrue(
string
value)
{
return
value.Substring(
0
,
1
).ToLower()
+
value.Substring(
1
);
}
#endregion
script
</
script
>
查看全文
相关阅读:
Tips for Hoops 3D & ACIS
把书读薄TICPP(2)
Software Toolbox EasyOPC简介
Wonderware InSQL and Incurity安装心得
Linux root password reset
SQL Server 2005 的搞笑
SVG 简介
M0n0wall 是什么?
Solaris 上调试系统 hang 的总结
DDNS简介
原文地址:https://www.cnblogs.com/zhangpengshou/p/1393129.html
最新文章
python中 for 循环和 while循环求 1100的和
python 小甲鱼猜数字游戏
[转载]oracle11g ORA12514:TNS:监听程序当前无法识别
[转载]999只纸鹤,999个爱你的理由…… 【1】
[转载]oracle11g ORA12514:TNS:监听程序当前无法识别
[转载]ora03114:未连接数据库
[转载]ora03114:未连接数据库
[转载]ORA12560: TNS: 协议适配器错误
[转载]TNS12541: TNS: 无监听程序 (Oracle LISTENER监听)
[转载]ORA12560: TNS: 协议适配器错误
热门文章
[转载]ORA12528问题解决
[转载]ORA12528问题解决
把书读薄EffectiveCPP3(1)
终于可以在Eclipse下编译C++代码了
使用TUT要注意的问题
用XML来配置属性用boost::any, TinyXML测试
为什么要用boost::array
万能数据类型any杂谈
Test Your UML Knowledge
把书读薄——TICPP(1)
Copyright © 2011-2022 走看看