修改日志:
1.修改Web层代码为非Web应用程序格式:不生成Designer.cs 文件 去除 web层的命名空间
2.WebBuilder.dll 修改了时间格式字段Input Text为TextBox
3.修改了提示信息为英文字段名称的问题
4.修改信息页面的提交按钮事件添加了从数据库中提取属性来初始化model 防止没有初始化到的数据丢失
更改后的修改信息页面aspx 示例
< asp:Content ID ="Content1" ContentPlaceHolderID ="head" runat ="server" >
</ asp:Content >
< asp:Content ID ="Content2" ContentPlaceHolderID ="ContentPlaceHolder1" runat ="server" >
<% -- SO.wRoot 站点根目录 http: // localhost / -- %>
< link href ="<%=SO.wRoot%>js/ui.datepicker.css" rel ="stylesheet" type ="text/css" />
< script src ="<%=SO.wRoot%>js/jquery-1.4.2.min.js" type ="text/javascript" ></ script >
< script src ="<%=SO.wRoot%>js/jq.date.js" type ="text/javascript" ></ script >
< script type ="text/javascript" >
$( function () {
$( " #<%=new Button().ClientID %> " ).datepicker($.extend({ showOn: " both " , dateFormat: ' yy-mm-d ' ,
buttonImageOnly: true , buttonImage: " <%=SO.wRoot%>js/calendar.gif "
},
$.datepicker.regional[ " fr " ]));
});
</ script >
< table cellSpacing ="0" cellPadding ="0" width ="100%" border ="0" >
< tr >
< td height ="25" width ="30%" align ="right" >
图片ID
: </ td >
< td height ="25" width ="*" align ="left" >
< asp:label id ="lblPICID" runat ="server" ></ asp:label >
</ td ></ tr >
< tr >
< td height ="25" width ="30%" align ="right" >
文件路径
: </ td >
< td height ="25" width ="*" align ="left" >
< asp:TextBox id ="txtpath" runat ="server" Width ="200px" ></ asp:TextBox >
</ td ></ tr >
< tr >
< td height ="25" width ="30%" align ="right" >
图片介绍
: </ td >
< td height ="25" width ="*" align ="left" >
< asp:TextBox id ="txtDescription" runat ="server" Width ="200px" ></ asp:TextBox >
</ td ></ tr >
< tr >
< td height ="25" width ="30%" align ="right" >
是否本站图片
: </ td >
< td height ="25" width ="*" align ="left" >
< asp:CheckBox ID ="chkInSite" Text ="是否本站图片" runat ="server" Checked ="False" />
</ td ></ tr >
< tr >
< td height ="25" width ="30%" align ="right" >
标题
: </ td >
< td height ="25" width ="*" align ="left" >
< asp:TextBox id ="txttitle" runat ="server" Width ="200px" ></ asp:TextBox >
</ td ></ tr >
< tr >
< td height ="25" width ="30%" align ="right" >
相册ID
: </ td >
< td height ="25" width ="*" align ="left" >
< asp:TextBox id ="txtCardID" runat ="server" Width ="200px" ></ asp:TextBox >
</ td ></ tr >
< tr >
< td height ="25" colspan ="2" >< div align ="center" >
< asp:Button ID ="btnUpdate" runat ="server" Text ="· 提交 ·" OnClick ="btnUpdate_Click" ></ asp:Button >
</ div ></ td ></ tr >
</ table >
</ asp:Content >
更改后的修改信息页面aspx.cs 示例
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;
using LTP.Common;
public partial class QS_Web_Photos_Modify : System.Web.UI.Page
{
protected void Page_Load( object sender, EventArgs e)
{
if ( ! Page.IsPostBack)
{
if (Request.Params[ " id " ] != null && Request.Params[ " id " ].Trim() != "" )
{
string id = Request.Params[ " id " ];
ShowInfo( int .Parse(id));
}
}
}
private void ShowInfo( int PICID)
{
QS.BLL.Photos bll = new QS.BLL.Photos();
QS.Model.Photos model = bll.GetModel(PICID);
this .lblPICID.Text = model.PICID.ToString();
this .txtpath.Text = model.path;
this .txtDescription.Text = model.Description;
this .chkInSite.Checked = model.InSite;
this .txttitle.Text = model.title;
this .txtCardID.Text = model.CardID.ToString();
}
public void btnUpdate_Click( object sender, EventArgs e)
{
string strErr = "" ;
if ( this .txtpath.Text == "" )
{
strErr += " 文件路径不能为空!\\n " ;
}
if ( this .txtDescription.Text == "" )
{
strErr += " 图片介绍不能为空!\\n " ;
}
if ( this .txttitle.Text == "" )
{
strErr += " 标题不能为空!\\n " ;
}
if ( ! PageValidate.IsNumber(txtCardID.Text))
{
strErr += " 相册ID不是数字!\\n " ;
}
if (strErr != "" )
{
MessageBox.Show( this , strErr);
return ;
}
string path = this .txtpath.Text;
string Description = this .txtDescription.Text;
bool InSite = this .chkInSite.Checked;
string title = this .txttitle.Text;
int CardID = int .Parse( this .txtCardID.Text);
QS.Model.Photos model = new QS.Model.Photos();
QS.BLL.Photos bll = new QS.BLL.Photos();
model = bll.GetModel( int .Parse(lblPICID.Text));
model.path = path;
model.Description = Description;
model.InSite = InSite;
model.title = title;
model.CardID = CardID;
bll.Update(model);
}
}
使用方法:
修改后的源码直接解压覆盖到CodeMatic2源码根目录
生成Builder中的BuilderWeb项目 和Codematic项目就OK
呃另外别忘了备份.源代码 因为这个版本只是为了方便修改现有的解决方案
然后使用代码管理器的时候记得选管理模式三层
js文件放到网站根目录
JS文件主要是一个JQuery的库 和一个JS日历的插件
日期格式字段 附加js日历 的功能没有自动实现 你可以修改Builder.Web 源码 (在项目代码最上面插件源码都只有一个类文件) 或者直接对生成后的代码进行修改 只需将 new Button()改成你的文本框字段ID
最后给项目中 CodeMatic\bin\Release\Codematic.exe 创建一个快捷方式发送到桌面 就OK
生成的 Model ,DAL,和BLL中仅包含对应的类 没有解决方案文件等其他东西
生成的Web层
注:这里的Master.TabTitle已经更新掉了
如果修改了某个表,只需要重新生成它并复制他们4个文件夹覆盖到现有的动软代码生成器生成的项目中即可
生成失败的注意事项:
这是因为2.0版的生成器生成数据库文档的功能需要OFFICE2007 的dll 如果没有安装07的话可以手动改变为低版本的引用
在Codematic 项目中移除 改程序集的引用 重新添加引用 .NET >Microsoft.Office.Interop.Word 11.0.0.0版本的引用
由于时间原因还有许多不足的地方我会在后面改正
修改好的生成器 点此下载
源码下载地址: 点此下载 ( 更新时间 2010-9-16 0:53:36 上次源码传错了~~,不好意思啊各位..)
动软代码生成器官方下载:http://www.maticsoft.com/
如果您有任何问题或者意见,欢迎来我的博客 http://Qbit.cnblogs.com/留言给我.
更新:
2010-3-12
修改了ASPX页面与页面类 Inherits 不匹配的问题
Builder\BuilderWeb\BuilderWeb.cs
修改了 ShowInfo(这里的内容)
改为ShowInfo(intParse(id));
2010-3-13
修改了DAL 层生成插件和BLL层代码生成插件
增加两个重载GetModel的方法:
Model GetModel GetModel(string where) 和 Model GetModel GetModel(DataSet ds) 两个方法
分别用于根据条件返回对象和根据DataSet 填充对象