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
>
查看全文
相关阅读:
VTK 空间几何变换(Transform),平移、旋转和缩放
VTK 对象绘制 3D坐标轴(vtkCubeAxesActor)
VTK 颜色映射之颜色插值
VTK 模型的颜色映射
VTK 如何不使用qvtkwidget,而直接把vtk出口嵌入qt窗口中
VTK vtkRenderWindow 与vtkRenderWindowInteractor详解
Qt 将界面程序封装成动态库DLL
Qt 界面做成dll以便调用
Qt 将带界面的程序封装成dll
Qt 开发的界面程序封装成DLL,在VC中成功调用
原文地址:https://www.cnblogs.com/zhangpengshou/p/1393129.html
最新文章
Qt OpenGL 粒子系统
Qt OpenGL 二次几何体
Qt OpenGL 2D图像文字
Qt OpenGL 看起来很酷的雾
Qt OpenGL 图形字体的纹理映射
Qt OpenGL 轮廓字体
Qt OpenGL 位图字体
Qt OpenGL 显示列表
Qt OpenGL 旗帜效果(飘动的纹理)
Qt OpenGL 加载3D世界,并在其中漫游
热门文章
Qt OpenGL 在3D空间中移动位图
Qt OpenGL 混合
Qt OpenGL 光照和键盘控制
Qt OpenGL 纹理映射
Qt OpenGL 3D模型
Qt OpenGL 旋转
Qt OpenGL 添加颜色
Qt OpenGL 你的第一个多边形
Qt OpenGL 创建一个OpenGL窗口
VTK 模型的旋转与平移
Copyright © 2011-2022 走看看