public static string CreateSearchContent(EasyUIModel model) { string template = @" <div class=""demo-info"" style=""margin-bottom: 10px""> <div class=""demo-tip icon-tip""> </div> <div>{0}</div> </div> "; StringBuilder searchContent = new StringBuilder(); foreach (var item in model.SearchColumns) { string attribute = item.ColumnName.ToFirstUpper(); searchContent.AppendFormat(" <label for=\"txtSearch{0}\">{1}:</label><input type=\"text\" id=\"txtSearch{0}\" />", attribute, item.Comment); } if (searchContent.ToString() != string.Empty) { // 非空。添加查询按钮 searchContent.Append(" <input type=\"button\" id=\"btnsearch\" value=\"查询\" />"); } return(string.Format(template, searchContent.ToString())); }
public static string CreateEditData(EasyUIModel model) { StringBuilder editContent = new StringBuilder(); StringBuilder createModel = new StringBuilder(); editContent.AppendFormat("\t\t\tstring {0} = HttpUtility.UrlDecode(Request[\"txtEdit{1}\"]);\r\n", model.MainKeyIdStr.ToFirstLower(), model.MainKeyIdStr.ToFirstUpper()); createModel.AppendFormat("\t\t\tmodel.{0} = {1};\r\n", model.MainKeyIdStr.ToFirstUpper(), ExtendMethod.ToStringToType(model.MainKeyIdStr.ToFirstLower(), model.MainKeyIdDBType)); foreach (var item in model.EditColumns) { string field = item.ColumnName.ToFirstLower(); string attribute = item.ColumnName.ToFirstUpper(); editContent.AppendFormat("\t\t\tstring {0} = HttpUtility.UrlDecode(Request[\"txtEdit{1}\"]);\r\n", field, attribute); createModel.AppendFormat("\t\t\tmodel.{0} = {1};\r\n", attribute, ExtendMethod.ToStringToType(field, item.DBType)); } string template = @" private void EditData() {{ {0} {1} model = new {1}(); {2} {1}DAL dal = new {1}DAL(); dal.Update{1}(model); Response.Write(""0""); }} "; return(string.Format(template, editContent.ToString(), model.TableName.ToFirstUpper(), createModel.ToString())); }
public static string CreateBatEditData(EasyUIModel model) { StringBuilder batEditContent = new StringBuilder(); StringBuilder createModel = new StringBuilder(); batEditContent.AppendFormat("\t\t\tstring {0} = HttpUtility.UrlDecode(Request[\"txtBatEdit{1}\"]);\r\n", model.MainKeyIdStr.ToFirstLower(), model.MainKeyIdStr.ToFirstUpper()); batEditContent.AppendFormat(@" List<string> idList = {0}.Split(new char[]{{','}}, StringSplitOptions.RemoveEmptyEntries).ToList();{1}", model.MainKeyIdStr.ToFirstLower(), Environment.NewLine); foreach (var item in model.BatEditColumns) { string field = item.ColumnName.ToFirstLower(); string attribute = item.ColumnName.ToFirstUpper(); batEditContent.AppendFormat("\t\t\tstring {0} = HttpUtility.UrlDecode(Request[\"txtBatEdit{1}\"]);\r\n", field, attribute); createModel.AppendFormat("\t\t\tmodel.{0} = {1};\r\n", attribute, ExtendMethod.ToStringToType(field, item.DBType)); } string template = @" private void BatEditData() {{ {0} {1} model = new {1}(); {2} {1}DAL dal = new {1}DAL(); dal.BatUpdate{1}(idList, model); Response.Write(""0""); }} "; return(string.Format(template, batEditContent.ToString(), model.TableName.ToFirstUpper(), createModel.ToString())); }
public static string CreateFactory(EasyUIModel model) { string template = @"using System; using System.Collections.Generic; using System.Configuration; using System.Data.SqlClient; using System.Linq; using System.Web; namespace {0} {{ public class ConnectionFactory {{ public static SqlConnection {1} {{ get {{ return new SqlConnection(ConfigurationManager.ConnectionStrings[""{1}""].ConnectionString); }} }} }} }}"; return(string.Format(template, model.NameSpace, model.DbName.ToFirstUpper())); }
public string CreateFactory(EasyUIModel model) { StringBuilder facContent = new StringBuilder(); facContent.Append(EasyUIFactoryHelper.CreateFactory(model)); return(facContent.ToString()); }
public static string CreateLoadData(EasyUIModel model) { string template = @" private void LoadData() {{ int page = Convert.ToInt32(Request.Form[""page""]); int pageSize = Convert.ToInt32(Request.Form[""pageSize""]); {0} {1}DAL dal = new {1}DAL(); var list = dal.QueryList({2}page, pageSize); {4} int itemCount = dal.QueryListCount({3}); int pageCount = (int)Math.Ceiling((double)itemCount / (double)pageSize); JavaScriptSerializer js = new JavaScriptSerializer(); var str = js.Serialize(new {{ PageCount = pageCount, ItemCount = itemCount, Data = list }}); Response.Write(str); }} "; StringBuilder searchContent = new StringBuilder(); StringBuilder searchStrContent = new StringBuilder(); foreach (var item in model.SearchColumns) { string field = item.ColumnName.ToFirstLower(); string attribute = item.ColumnName.ToFirstUpper(); string name = string.Format("HttpUtility.UrlDecode(Request[\"txtSearch{0}\"])", attribute); searchContent.AppendFormat("\t\t\t{0} {1} = {2};\r\n", item.DBType.ToMsSqlClassType(), field, ExtendMethod.ToStringToType(name, item.DBType)); searchStrContent.AppendFormat(" {0},", field); } StringBuilder encodeContent = new StringBuilder(); foreach (var item in model.ColumnList) { if (item.DBType == "varchar") { string attribute = item.ColumnName.ToFirstUpper(); encodeContent.AppendLine(string.Format("\t\t\tlist.ForEach(p => p.{0} = HttpUtility.HtmlEncode(p.{0}));", attribute)); } } // 移除最后的逗号 string searchStrCount = searchStrContent.Length > 0 ? searchStrContent.ToString().Substring(0, searchStrContent.Length - 1) : searchStrContent.ToString(); return(string.Format(template, searchContent.ToString(), model.TableName.ToFirstUpper(), searchStrContent.ToString(), searchStrCount, encodeContent.ToString())); }
public static string CreateBatEditMethod(EasyUIModel model) { StringBuilder updateContent = new StringBuilder(@"string updateSql = string.Format(""update "); updateContent.AppendFormat(" {0} set ", model.TableName); StringBuilder updateParamsContent = new StringBuilder("List<SqlParameter> listParams = new List<SqlParameter>();\r\n"); int index = 0; foreach (var item in model.BatEditColumns) { string field = item.ColumnName.ToFirstLower(); string attribute = item.ColumnName.ToFirstUpper(); if (index == 0) { updateContent.AppendFormat("{0}=@{0}", item.ColumnName); } else { updateContent.AppendFormat(",{0}=@{0}", item.ColumnName); } updateParamsContent.AppendFormat("\t\t\tlistParams.Add(new SqlParameter(\"@{0}\", {1}) {{ Value = model.{2} }});\r\n", item.ColumnName, item.DBType.ToMsSqlDbType(), attribute); index++; } updateContent.Append(" where "); updateContent.AppendFormat(" {0} in ({{0}})\", idStr);", model.MainKeyIdStr); updateParamsContent.AppendFormat("\t\t\tlistParams.Add(new SqlParameter(\"@{0}\", {1}) {{ Value = model.{2} }});\r\n", model.MainKeyIdStr.ToFirstUpper(), model.MainKeyIdDBType.ToMsSqlDbType(), model.MainKeyIdStr.ToFirstUpper()); string template = @" public bool BatUpdate{0}(List<string> list, {0} model) {{ var array = (from f in list select ""'"" + f + ""'"").ToArray(); string idStr = string.Join("","", array); {1} {2} using (SqlConnection sqlcn = ConnectionFactory.{3}) {{ return SqlHelper.ExecuteNonQuery(sqlcn, CommandType.Text, updateSql, listParams.ToArray()) > 0; }} }} "; return(string.Format(template, model.TableName.ToFirstUpper(), updateContent.ToString(), updateParamsContent.ToString(), model.DbName.ToFirstUpper())); }
public string CreateDAL(EasyUIModel model) { StringBuilder dalContent = new StringBuilder(); dalContent.Append(EasyUIDALHelper.CreateDALHeader(model.NameSpace, model.TableName.ToFirstUpper())); dalContent.Append(EasyUIDALHelper.CreateAddMethod(model)); dalContent.Append(EasyUIDALHelper.CreateEditMethod(model)); dalContent.Append(EasyUIDALHelper.CreateBatEditMethod(model)); dalContent.Append(EasyUIDALHelper.CreateDeleteMethod(model)); dalContent.Append(EasyUIDALHelper.CreateQueryListMethod(model)); dalContent.Append(EasyUIDALHelper.CreateGetAllAndPart(model)); dalContent.Append(EasyUIDALHelper.CreateBottom()); return(dalContent.ToString()); }
public string CreateASPXCS(EasyUIModel model) { StringBuilder aspxcsContent = new StringBuilder(); aspxcsContent.Append(EasyUIAspxCsHelper.CreateCSHead(model.NameSpace, model.TableName.ToFirstUpper())); aspxcsContent.Append(EasyUIAspxCsHelper.CreatePageLoad(model)); aspxcsContent.Append(EasyUIAspxCsHelper.CreateLoadData(model)); aspxcsContent.Append(EasyUIAspxCsHelper.CreateAddData(model)); aspxcsContent.Append(EasyUIAspxCsHelper.CreateEditData(model)); aspxcsContent.Append(EasyUIAspxCsHelper.CreateBatEditData(model)); aspxcsContent.Append(EasyUIAspxCsHelper.CreateDeleteData(model)); aspxcsContent.Append(EasyUIAspxCsHelper.CreateDownAndDownAll(model)); aspxcsContent.Append(EasyUIAspxCsHelper.CreateBottom()); return(aspxcsContent.ToString()); }
public static string CreateEditMethod(EasyUIModel model) { StringBuilder updateContent = new StringBuilder("string updateSql = \"update "); updateContent.AppendFormat(" {0} set ", model.TableName); StringBuilder updateParamsContent = new StringBuilder("List<MySqlParameter> listParams = new List<MySqlParameter>();\r\n"); int index = 0; foreach (var item in model.EditColumns) { string field = item.ColumnName.ToFirstLower(); string attribute = item.ColumnName.ToFirstUpper(); if (index == 0) { updateContent.AppendFormat("{0}=@{0}", item.ColumnName); } else { updateContent.AppendFormat(",{0}=@{0}", item.ColumnName); } updateParamsContent.AppendFormat("\t\t\tlistParams.Add(new MySqlParameter(\"@{0}\", {1}) {{ Value = model.{2} }});\r\n", item.ColumnName, item.DBType.ToMySqlDbType(), attribute); index++; } updateContent.Append(" where "); updateContent.AppendFormat(" {0}=@{0} \";", model.MainKeyIdStr); updateParamsContent.AppendFormat("\t\t\tlistParams.Add(new MySqlParameter(\"@{0}\", {1}) {{ Value = model.{2} }});\r\n", model.MainKeyIdStr, model.MainKeyIdDBType.ToMySqlDbType(), model.MainKeyIdStr.ToFirstUpper()); string template = @" public bool Update{0}({0} model) {{ {1} {2} using (MySqlConnection sqlcn = ConnectionFactory.{3}) {{ return MySqlHelper2.ExecuteNonQuery(sqlcn, CommandType.Text, updateSql, listParams.ToArray()) > 0; }} }} "; return(string.Format(template, model.TableName.ToFirstUpper(), updateContent.ToString(), updateParamsContent.ToString(), model.DbName.ToFirstUpper())); }
public static string CreateAddMethod(EasyUIModel model) { StringBuilder addContent = new StringBuilder(); StringBuilder valueContent = new StringBuilder(") values ("); StringBuilder addparamsContent = new StringBuilder("List<SqlParameter> listParams = new List<SqlParameter>();\r\n"); addContent.AppendFormat("string insertSql = \"insert {0}(", model.TableName); var addlist = (from f in model.ColumnList where !f.IsMainKey select f).ToList(); int index = 0; foreach (var item in addlist) { string field = item.ColumnName.ToFirstLower(); string attribute = item.ColumnName.ToFirstUpper(); if (index == 0) { addContent.Append(item.ColumnName); valueContent.Append("@" + item.ColumnName); } else { addContent.Append(" ," + item.ColumnName); valueContent.Append(" ,@" + item.ColumnName); } addparamsContent.AppendFormat("\t\t\tlistParams.Add(new SqlParameter(\"@{0}\", {1}) {{ Value = model.{2} }});\r\n", item.ColumnName, item.DBType.ToMsSqlDbType(), attribute); index++; } addContent.Append(valueContent.ToString() + ")\";"); string template = @" public bool Add{0}({0} model) {{ {1} {2} using (SqlConnection sqlcn = ConnectionFactory.{3}) {{ return SqlHelper.ExecuteNonQuery(sqlcn, CommandType.Text, insertSql, listParams.ToArray()) > 0; }} }} "; return(string.Format(template, model.TableName.ToFirstUpper(), addContent.ToString(), addparamsContent.ToString(), model.DbName.ToFirstUpper())); }
private void btnCreate_Click(object sender, EventArgs e) { EasyUIModel model = new EasyUIModel(); model.DbName = this.txtDBName.Text.Trim(); model.AddColumnsStr = this.txtAddColumnName.Text.Trim(); model.SearchColumnsStr = this.txtSearchColumnName.Text.Trim(); model.EditColumnsStr = this.txtEditColumnName.Text.Trim(); model.BatEditColumnsStr = this.txtBatEdit.Text.Trim(); model.TableStr = this.txtName.Text.Trim(); model.NameSpace = this.txtNameSpace.Text.Trim(); model.DbType = rbtnMSSQL.Checked ? 0 : 1; model.IsDel = this.chkDel.Checked; model.IsBatDel = this.chkBatDel.Checked; model.IsBatEdit = this.chkBatEdit.Checked; model.IsAdd = this.chkAdd.Checked; model.IsEdit = this.chkEdit.Checked; model.IsExport = this.chkExport.Checked; // 初始化model对象的属性 UIHelper.InitEasyUI(model); if (model.DbType == 0) { EasyUIHelper easyHelper = new EasyUIHelper(); this.txtClassCode.Text = easyHelper.CreateModel(model); string aspxStr = easyHelper.CreateASPX(model); this.txtAspxCode.Text = aspxStr; this.txtAspxCsCode.Text = easyHelper.CreateASPXCS(model); this.txtDALCode.Text = easyHelper.CreateDAL(model); this.txtFactoryCode.Text = easyHelper.CreateFactory(model); this.txtSqlHelper.Text = SourceHelper.GetResource("sqlhelper.txt").Replace("命名空间", model.NameSpace); } else if (model.DbType == 1) { //CreateClass(temp); //MySqlCreateMySqlHelper sqlHelper = new MySqlCreateMySqlHelper(temp); //SetContent(this.txtAddCode, sqlHelper.CreateInsertMethod); //SetContent(this.txtDeleteCode, sqlHelper.CreateDeleteMethod); //SetContent(this.txtBatDeleteCode, sqlHelper.CreateBatDeleteMethod); //SetContent(this.txtUpdateCode, sqlHelper.CreateUpdateMethod); //SetContent(this.txtFactoryCode, sqlHelper.CreateConnectionFactory); } }
public string CreateASPX(EasyUIModel model) { StringBuilder aspxContent = new StringBuilder(); aspxContent.Append(EasyUIAspxHelper.CreatePageHead(model.NameSpace, model.TableName.ToFirstUpper() + "Manager")); aspxContent.Append(EasyUIAspxHelper.CreateHeader(model.Title)); aspxContent.Append(EasyUIAspxHelper.CreateBodyHead(model.Title)); aspxContent.Append(EasyUIAspxHelper.CreateSearchContent(model)); aspxContent.Append(EasyUIAspxHelper.CreateCmdToolBar(model)); aspxContent.Append(EasyUIAspxHelper.CreateDataGrid(model)); aspxContent.Append(EasyUIAspxHelper.CreateDialog(model)); aspxContent.Append(EasyUIAspxHelper.CreateNotifyMsg()); aspxContent.Append(EasyUIAspxHelper.CreateJsDateFormat()); aspxContent.Append(EasyUIAspxHelper.CreateJsOperation(model)); aspxContent.Append(EasyUIAspxHelper.CreateJsLoad(model)); aspxContent.Append(EasyUIAspxHelper.CreateBottomContent()); return(aspxContent.ToString()); }
public static string CreateCmdToolBar(EasyUIModel model) { StringBuilder toolBarContent = new StringBuilder(@" <div id=""toolbar""> "); if (model.IsAdd && model.AddColumns.Count > 0) { toolBarContent.Append(@"<a href=""javascript:void(0)"" class=""easyui-linkbutton"" iconcls=""icon-add"" plain=""true"" onclick=""newModel()"">新增</a>"); } if (model.IsEdit && model.EditColumns.Count > 0) { toolBarContent.Append(@"<a href=""javascript:void(0)"" class=""easyui-linkbutton"" iconcls=""icon-edit"" plain=""true"" onclick=""editModel()"">编辑</a>"); } if (model.IsBatEdit && model.BatEditColumns.Count > 0) { toolBarContent.Append(@"<a href=""javascript:void(0)"" class=""easyui-linkbutton"" iconcls=""icon-edit"" plain=""true"" onclick=""batEditModel()"">批量编辑</a>"); } if (model.IsDel) { toolBarContent.Append(@"<a href=""javascript:void(0)"" class=""easyui-linkbutton"" iconcls=""icon-remove"" plain=""true"" onclick=""destroyModel()"">删除</a>"); } if (model.IsBatDel) { toolBarContent.Append(@"<a href=""javascript:void(0)"" class=""easyui-linkbutton"" iconcls=""icon-remove"" plain=""true"" onclick=""destroyBatModel()"">删除</a>"); } if (model.IsExport) { toolBarContent.Append(@"<a href=""javascript:void(0)"" class=""easyui-linkbutton"" iconcls=""icon-remove"" plain=""true"" onclick=""selectExport()"">选中导出</a>"); toolBarContent.Append(@"<a href=""javascript:void(0)"" class=""easyui-linkbutton"" iconcls=""icon-remove"" plain=""true"" onclick=""exportAll()"">导出全部</a>"); } toolBarContent.Append(@" </div>"); return(toolBarContent.ToString()); }
public static string CreateDeleteData(EasyUIModel model) { StringBuilder batContent = new StringBuilder(); batContent.AppendFormat(" string ids = HttpUtility.UrlDecode(Request[\"ids\"]);\r\n", model.MainKeyIdStr.ToFirstLower(), model.MainKeyIdStr.ToFirstUpper()); batContent.Append(" List<string> idList = ids.Split(new char[]{','}, StringSplitOptions.RemoveEmptyEntries).ToList();\r\n"); string template = @" private void DeleteData() {{ {0} {1}DAL dal = new {1}DAL(); dal.Delete{1}(idList); Response.Write(""0""); }} "; return(string.Format(template, batContent.ToString(), model.TableName.ToFirstUpper())); }
public static string CreateDataGrid(EasyUIModel model) { // singleselect=""true"" string template = @" <table id=""dg"" class=""easyui-datagrid"" style=""width: 1200px; height: auto"" url="""" pagination=""true"" title=""{0}"" fitcolumns=""true""> <thead> <tr> {1} </tr> </thead> </table>"; StringBuilder tbodyContent = new StringBuilder(); foreach (var item in model.ColumnList) { string field = item.ColumnName.ToFirstLower(); string attribute = item.ColumnName.ToFirstUpper(); // 初始化table显示数据 if (item.IsMainKey) { tbodyContent.AppendFormat("\t\t\t\t<th data-options=\"field:'{0}',checkbox:true\">{1}</th>\r\n", attribute, item.Comment); // style=\"display: none;\" } else { if (item.DBType.ToLower().Contains("date")) { tbodyContent.AppendFormat("\t\t\t\t<th data-options=\"field:'{0}',width:120,align:'center'\">{1}</th>\r\n", attribute + "Str", item.Comment); } else { tbodyContent.AppendFormat("\t\t\t\t<th data-options=\"field:'{0}',width:120,align:'center'\">{1}</th>\r\n", attribute, item.Comment); } } } return(string.Format(template, model.Title, tbodyContent.ToString())); }
public static string CreateDeleteMethod(EasyUIModel model) { StringBuilder deleteContent = new StringBuilder(); deleteContent.AppendFormat(@"string deleteSql = string.Format(""delete from {0} ", model.TableName); deleteContent.AppendFormat(" where {0} in ({{0}})\", idStr);", model.MainKeyIdStr); string template = @" public bool Delete{0}(List<string> list) {{ var array = (from f in list select ""'"" + f + ""'"").ToArray(); string idStr = string.Join("","", array); {1} using (SqlConnection sqlcn = ConnectionFactory.{2}) {{ return SqlHelper.ExecuteNonQuery(sqlcn, CommandType.Text, deleteSql, null) > 0; }} }} "; return(string.Format(template, model.TableName.ToFirstUpper(), deleteContent.ToString(), model.DbName.ToFirstUpper())); }
public static void InitEasyUI(EasyUIModel model) { if (model.DbType == 0) { // MS SQL Regex tableComRegex = new Regex(@"--\s{0,}(?<tablecom>[^\s]+)\s{0,}create\s+table\s+"); Regex tableRegex = new Regex(@"create\s+table\s+(?<tableName>\w+)"); Regex columnRegex = new Regex(@"\s{0,}(?<key>\w+)\s+(?<type>\w+)"); Regex mainKeyRegex = new Regex(@"primary\s+key", RegexOptions.IgnoreCase); Regex commentRegex = new Regex(@"-{2,}\s{0,}(?<comment>[^\s]+)"); model.TableName = tableRegex.Match(model.TableStr).Groups["tableName"].Value; model.Title = tableComRegex.Match(model.TableStr).Groups["tablecom"].Value; #region 加载列集合 var columnList = new List <ColumnInfo>(); string[] lines = model.TableStr.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < lines.Length; i++) { var line = lines[i]; Match m = columnRegex.Match(line); string key = m.Groups["key"].Value; string value = m.Groups["type"].Value; if (key == "" || value == "" || key.ToLower() == "create" || value.ToLower() == "table") { continue; } string comment = commentRegex.Match(line).Groups["comment"].Value; if (string.IsNullOrEmpty(comment)) { comment = key; } columnList.Add(new ColumnInfo() { ColumnName = key, DBType = value, IsAutoIncrement = line.ToLower().Contains("identity"), IsMainKey = mainKeyRegex.IsMatch(line), Comment = comment }); } model.ColumnList.AddRange(columnList.ToArray()); string[] array = model.SearchColumnsStr.Split(new char[] { ',', ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (var item in array) { var m = model.ColumnList.Find(p => p.ColumnName == item); if (m != null) { model.SearchColumns.Add(m); } } #endregion #region 添加,编辑,批量编辑 if (model.IsAdd) { array = model.AddColumnsStr.Split(new char[] { ',', ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (var item in array) { var m = model.ColumnList.Find(p => p.ColumnName == item); if (m != null) { model.AddColumns.Add(m); } } } if (model.IsEdit) { array = model.EditColumnsStr.Split(new char[] { ',', ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (var item in array) { var m = model.ColumnList.Find(p => p.ColumnName == item); if (m != null) { model.EditColumns.Add(m); } } } if (model.IsBatEdit) { array = model.BatEditColumnsStr.Split(new char[] { ',', ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (var item in array) { var m = model.ColumnList.Find(p => p.ColumnName == item); if (m != null) { model.BatEditColumns.Add(m); } } } #endregion } else if (model.DbType == 1) { // MySQL Regex tableComRegex = new Regex(@"--\s{0,}(?<tablecom>[^\s]+)\s{0,}create\s+table\s+"); Regex tableRegex = new Regex(@"create\s+table\s+(?<tableName>\w+)"); Regex columnRegex = new Regex(@"\s{0,}(?<key>\w+)\s+(?<type>\w+)"); Regex mainKeyRegex = new Regex(@"primary\s+key", RegexOptions.IgnoreCase); Regex commentRegex = new Regex(@"-{2,}\s{0,}(?<comment>[^\s]+)"); model.TableName = tableRegex.Match(model.TableStr).Groups["tableName"].Value; model.Title = tableComRegex.Match(model.TableStr).Groups["tablecom"].Value; #region 加载列集合 var columnList = new List <ColumnInfo>(); string[] lines = model.TableStr.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < lines.Length; i++) { var line = lines[i]; Match m = columnRegex.Match(line); string key = m.Groups["key"].Value; string value = m.Groups["type"].Value; if (key == "" || value == "" || key.ToLower() == "create" || value.ToLower() == "table") { continue; } string comment = commentRegex.Match(line).Groups["comment"].Value; if (string.IsNullOrEmpty(comment)) { comment = key; } columnList.Add(new ColumnInfo() { ColumnName = key, DBType = value, IsAutoIncrement = line.ToLower().Contains("auto_increment"), IsMainKey = mainKeyRegex.IsMatch(line), Comment = comment }); } model.ColumnList.AddRange(columnList.ToArray()); string[] array = model.SearchColumnsStr.Split(new char[] { ',', ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (var item in array) { var m = model.ColumnList.Find(p => p.ColumnName == item); if (m != null) { model.SearchColumns.Add(m); } } #endregion #region 添加,编辑,批量编辑 if (model.IsAdd) { array = model.AddColumnsStr.Split(new char[] { ',', ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (var item in array) { var m = model.ColumnList.Find(p => p.ColumnName == item); if (m != null) { model.AddColumns.Add(m); } } } if (model.IsEdit) { array = model.EditColumnsStr.Split(new char[] { ',', ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (var item in array) { var m = model.ColumnList.Find(p => p.ColumnName == item); if (m != null) { model.EditColumns.Add(m); } } } if (model.IsBatEdit) { array = model.BatEditColumnsStr.Split(new char[] { ',', ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (var item in array) { var m = model.ColumnList.Find(p => p.ColumnName == item); if (m != null) { model.BatEditColumns.Add(m); } } } #endregion } var col = model.ColumnList.Find(p => p.IsMainKey); if (col != null) { model.MainKeyIdStr = col.ColumnName; model.MainKeyIdDBType = col.DBType; } }
public static string CreateGetAllAndPart(EasyUIModel model) { StringBuilder queryWhereContent = new StringBuilder(); StringBuilder queryListParams = new StringBuilder(); int index = 0; foreach (var item in model.SearchColumns) { string field = item.ColumnName.ToFirstLower(); string attribute = item.ColumnName.ToFirstUpper(); queryListParams.AppendFormat("{0} {1},", item.DBType.ToMsSqlClassType(), field); if (index == 0) { queryWhereContent.AppendFormat(" if (!string.IsNullOrEmpty({0}))\r\n", field); } else { queryWhereContent.AppendFormat(" if (!string.IsNullOrEmpty({0}))\r\n", field); } queryWhereContent.Append(" {\r\n"); queryWhereContent.AppendFormat(" listParams.Add(new SqlParameter(\"@{0}\", {1}) {{ Value = {2} }});\r\n", item.ColumnName, item.DBType.ToMsSqlDbType(), field); queryWhereContent.AppendFormat(" whereStr += \" and {0}=@{0} \";\r\n", item.ColumnName.ToFirstUpper()); queryWhereContent.Append(" }\r\n"); queryWhereContent.AppendLine(); index++; } StringBuilder selectSqlContent = new StringBuilder(); selectSqlContent.Append(" string selectSql = string.Format(@\"select * from\r\n"); selectSqlContent.Append(" " + model.TableName + " where " + model.MainKeyIdStr + " in ({1})\r\n"); selectSqlContent.Append(" {0};\", whereStr, idArrayStr);\r\n"); var assignContent = new StringBuilder(); foreach (var item in model.ColumnList) { string field = item.ColumnName.ToFirstLower(); string attribute = item.ColumnName.ToFirstUpper(); assignContent.AppendFormat(" model.{0} = sqldr[\"{1}\"] == DBNull.Value ? {2} : {3};\r\n", attribute, item.ColumnName, ExtendMethod.ToDefaultValue(item.DBType), ExtendMethod.ToDefaultDBValue(item.DBType, item.ColumnName)); } string template = @" public List<{0}> GetPartAll({1}List<string> idList) {{ var idArrayStr = string.Join("","", (from f in idList select ""'""+ f + ""'"").ToArray()); string whereStr = string.Empty; List<SqlParameter> listParams = new List<SqlParameter>(); {2} {7} List<{0}> result = new List<{0}>(); using (SqlConnection sqlcn = ConnectionFactory.{3}) {{ using(SqlDataReader sqldr = SqlHelper.ExecuteReader(sqlcn, CommandType.Text, selectSql, listParams.ToArray())) {{ while(sqldr.Read()) {{ {0} model = new {0}(); {5} result.Add(model); }} }} }} return result; }} public List<{0}> GetAll({4}) {{ string whereStr = string.Empty; List<SqlParameter> listParams = new List<SqlParameter>(); {2} string selectAllSql = string.Format(""select * from {6} where 1=1 {{0}}"", whereStr); List<{0}> result = new List<{0}>(); using (SqlConnection sqlcn = ConnectionFactory.{3}) {{ using(SqlDataReader sqldr = SqlHelper.ExecuteReader(sqlcn, CommandType.Text, selectAllSql, listParams.ToArray())) {{ while(sqldr.Read()) {{ {0} model = new {0}(); {5} result.Add(model); }} }} }} return result; }} "; string queryCountParams = queryListParams.Length > 0 ? queryListParams.ToString().Substring(0, queryListParams.Length - 1) : queryListParams.ToString(); return(string.Format(template, model.TableName.ToFirstUpper(), queryListParams.ToString(), queryWhereContent.ToString(), model.DbName.ToFirstUpper(), queryCountParams, assignContent.ToString(), model.TableName, selectSqlContent.ToString())); }
private void btnExportCode_Click(object sender, EventArgs e) { SaveFileDialog dialog = new SaveFileDialog(); dialog.Filter = "Zip文件|*.zip"; if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { string filePath = dialog.FileName; EasyUIModel model = new EasyUIModel(); model.DbName = this.txtDBName.Text.Trim(); model.AddColumnsStr = this.txtAddColumnName.Text.Trim(); model.SearchColumnsStr = this.txtSearchColumnName.Text.Trim(); model.EditColumnsStr = this.txtEditColumnName.Text.Trim(); model.BatEditColumnsStr = this.txtBatEdit.Text.Trim(); model.TableStr = this.txtName.Text.Trim(); model.NameSpace = this.txtNameSpace.Text.Trim(); model.DbType = rbtnMSSQL.Checked ? 0 : 1; model.IsDel = this.chkDel.Checked; model.IsBatDel = this.chkBatDel.Checked; model.IsBatEdit = this.chkBatEdit.Checked; model.IsAdd = this.chkAdd.Checked; model.IsEdit = this.chkEdit.Checked; model.IsExport = this.chkExport.Checked; // 初始化model对象的属性 UIHelper.InitEasyUI(model); if (model.DbType == 0) { EasyUIHelper easyHelper = new EasyUIHelper(); this.txtClassCode.Text = easyHelper.CreateModel(model); string aspxStr = easyHelper.CreateASPX(model); this.txtAspxCode.Text = aspxStr; this.txtAspxCsCode.Text = easyHelper.CreateASPXCS(model); this.txtDALCode.Text = easyHelper.CreateDAL(model); this.txtFactoryCode.Text = easyHelper.CreateFactory(model); this.txtSqlHelper.Text = SourceHelper.GetResource("sqlhelper.txt").Replace("命名空间", model.NameSpace); } else if (model.DbType == 1) { } // 构建数据,塞入zip包 string tempPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "temp"); if (!Directory.Exists(tempPath)) { Directory.CreateDirectory(tempPath); } string dir = Path.Combine(tempPath, model.TableName); if (Directory.Exists(dir)) { Directory.Delete(dir); } Directory.CreateDirectory(dir); string modelPath = Path.Combine(dir, model.TableName.ToFirstUpper() + ".cs"); string aspxPath = Path.Combine(dir, model.TableName.ToFirstUpper() + "Manager.aspx"); string aspxCsPath = Path.Combine(dir, model.TableName.ToFirstUpper() + "Manager.aspx.cs"); string dalPath = Path.Combine(dir, model.TableName.ToFirstUpper() + "DAL.cs"); string factoryPath = Path.Combine(dir, "ConnectionFactory.cs"); string sqlHelperPath = Path.Combine(dir, "SqlHelper.cs"); File.WriteAllText(modelPath, this.txtClassCode.Text); File.WriteAllText(aspxPath, this.txtAspxCode.Text); File.WriteAllText(aspxCsPath, this.txtAspxCsCode.Text); File.WriteAllText(dalPath, this.txtDALCode.Text); File.WriteAllText(factoryPath, this.txtFactoryCode.Text); File.WriteAllText(sqlHelperPath, this.txtSqlHelper.Text); string zipPath = Path.Combine(tempPath, Guid.NewGuid().ToString("N") + ".zip"); ZipHelper.ZipDirectory(dir, zipPath); File.Copy(zipPath, filePath); File.Delete(zipPath); } }
public static string CreateQueryListMethod(EasyUIModel model) { StringBuilder queryWhereContent = new StringBuilder(); StringBuilder queryListParams = new StringBuilder(); int index = 0; foreach (var item in model.SearchColumns) { string field = item.ColumnName.ToFirstLower(); string attribute = item.ColumnName.ToFirstUpper(); queryListParams.AppendFormat("{0} {1},", item.DBType.ToMsSqlClassType(), field); if (index == 0) { queryWhereContent.AppendFormat("if (!string.IsNullOrEmpty({0}))\r\n", field); } else { queryWhereContent.AppendFormat("\t\t\tif (!string.IsNullOrEmpty({0}))\r\n", field); } queryWhereContent.Append("\t\t\t{\r\n"); queryWhereContent.AppendFormat("\t\t\t\tlistParams.Add(new SqlParameter(\"@{0}\", {1}) {{ Value = {2} }});\r\n", item.ColumnName, item.DBType.ToMsSqlDbType(), field); queryWhereContent.AppendFormat("\t\t\t\twhereStr += \" and {0}=@{0} \";\r\n", item.ColumnName.ToFirstUpper()); queryWhereContent.Append("\t\t\t}\r\n"); queryWhereContent.AppendLine(); index++; } StringBuilder selectSqlContent = new StringBuilder(); selectSqlContent.Append("\tstring selectSql = string.Format(@\"select * from\r\n"); selectSqlContent.AppendFormat("\t (select top 100 percent *,ROW_NUMBER() over(order by {0}) as rownumber from\r\n", model.MainKeyIdStr); selectSqlContent.Append("\t " + model.TableName + " where 1=1 {0}) as T\r\n"); selectSqlContent.Append("\t where rownumber between {1} and {2};\", whereStr, ((page - 1) * pageSize + 1), page * pageSize);\r\n"); var assignContent = new StringBuilder(); foreach (var item in model.ColumnList) { string field = item.ColumnName.ToFirstLower(); string attribute = item.ColumnName.ToFirstUpper(); assignContent.AppendFormat(" model.{0} = sqldr[\"{1}\"] == DBNull.Value ? {2} : {3};\r\n", attribute, item.ColumnName, ExtendMethod.ToDefaultValue(item.DBType), ExtendMethod.ToDefaultDBValue(item.DBType, item.ColumnName)); } string template = @" public List<{0}> QueryList({1}int page, int pageSize) {{ string whereStr = string.Empty; List<SqlParameter> listParams = new List<SqlParameter>(); {2} {7} List<{0}> result = new List<{0}>(); using (SqlConnection sqlcn = ConnectionFactory.{3}) {{ using(SqlDataReader sqldr = SqlHelper.ExecuteReader(sqlcn, CommandType.Text, selectSql, listParams.ToArray())) {{ while(sqldr.Read()) {{ {0} model = new {0}(); {5} result.Add(model); }} }} }} return result; }} public int QueryListCount({4}) {{ string whereStr = string.Empty; List<SqlParameter> listParams = new List<SqlParameter>(); {2} string selectCountSql = string.Format(""select count(0) from {6} where 1=1 {{0}}"", whereStr); using (SqlConnection sqlcn = ConnectionFactory.{3}) {{ return Convert.ToInt32(SqlHelper.ExecuteScalar(sqlcn, CommandType.Text, selectCountSql, listParams.ToArray())); }} }} "; string queryCountParams = queryListParams.Length > 0 ? queryListParams.ToString().Substring(0, queryListParams.Length - 1) : queryListParams.ToString(); return(string.Format(template, model.TableName.ToFirstUpper(), queryListParams.ToString(), queryWhereContent.ToString(), model.DbName.ToFirstUpper(), queryCountParams, assignContent.ToString(), model.TableName, selectSqlContent.ToString())); }
/// <summary> /// 创建Model类 /// </summary> /// <param name="model">模板对象</param> public string CreateModel(EasyUIModel model) { return(EasyUIModelHelper.GetClassString(model)); }
public static string GetClassString(EasyUIModel model) { StringBuilder content = new StringBuilder(); content.AppendLine("using System;"); content.AppendLine("using System.Collections.Generic;"); content.AppendLine("using System.Text;"); content.AppendLine("namespace " + (string.IsNullOrEmpty(model.NameSpace) ? "命名空间" : model.NameSpace)); content.AppendLine("{"); if (!string.IsNullOrEmpty(model.Title)) { content.Append(CreateComment(model.Title, 1)); } content.AppendFormat("\tpublic class {0}\r\n", model.TableName.ToFirstUpper()); content.AppendLine("\t{"); for (int i = 0; i < model.ColumnList.Count; i++) { var item = model.ColumnList.Skip(i).Take(1).First(); if (!string.IsNullOrEmpty(item.Comment)) { content.Append(CreateComment(item.Comment, 2)); } content.AppendFormat("\t\tprivate {0} {1} = {2};\r\n", GetFormatString(item.DBType), item.ColumnName.ToFirstLower(), GetDefaultValueStr(item.DBType)); content.AppendLine(); if (!string.IsNullOrEmpty(item.Comment)) { content.Append(CreateComment(item.Comment, 2)); } content.AppendFormat("\t\tpublic {0} {1}\r\n", GetFormatString(item.DBType), item.ColumnName.ToFirstUpper()); content.AppendLine("\t\t{"); content.AppendLine("\t\t\tget { return this." + item.ColumnName.ToFirstLower() + "; }"); content.AppendLine("\t\t\tset { this." + item.ColumnName.ToFirstLower() + " = value; }"); content.AppendLine("\t\t}"); if (item.DBType.ToLower().Contains("date") && !model.ColumnList.Exists(p => p.ColumnName.ToLower().Contains(item.ColumnName.ToLower() + "str"))) { content.AppendLine(); // 增加字符串属性 if (!string.IsNullOrEmpty(item.Comment)) { content.Append(CreateComment(item.Comment, 2)); } content.AppendFormat("\t\tpublic string {0}Str\r\n", item.ColumnName.ToFirstUpper()); content.AppendLine("\t\t{"); if (item.DBType.ToLower() == "date") { content.AppendLine("\t\t\tget { return this." + item.ColumnName.ToFirstLower() + ".ToString(\"yyyy-MM-dd\"); }"); } else { content.AppendLine("\t\t\tget { return this." + item.ColumnName.ToFirstLower() + ".ToString(\"yyyy-MM-dd HH:mm\"); }"); } content.AppendLine("\t\t}"); } if ((i + 1) < model.ColumnList.Count) { content.AppendLine(); } } content.AppendLine("\t}"); content.AppendLine("}"); return(content.ToString()); }
public static string CreateJsLoad(EasyUIModel model) { StringBuilder content = new StringBuilder(); string template = @" <script type=""text/javascript""> $(function () { var pager = $('#dg').datagrid('getPager'); $('#dg').datagrid('getPager').pagination({ pageSize: 10, //每页显示的记录条数,默认为10 pageList: [10, 15, 20, 25], //可以设置每页记录条数的列表 onSelectPage: function (pageNumber, pageSize) { var opts = $('#dg').datagrid('options'); opts.pageNumber = pageNumber; opts.pageSize = pageSize; pager.pagination('refresh', { pageNumber: pageNumber, pageSize: pageSize }); SearchTrainee(pageNumber, pageSize); //每次更换页面时触发更改 }, onBeforeRefresh: function (pageNumber, pageSize) { // 好像已经被执行过了,这里就不需要了 SearchTrainee(pageNumber, pageSize); //每次更换页面时触发更改 }, displayMsg: '当前显示 {from} - {to} 条记录 共 {total} 条记录' }); }); function SearchTrainee(page_Number, page_Size) { if (page_Number == undefined && page_Size == undefined) { page_Number = $('#dg').datagrid('getPager').data(""pagination"").options.pageNumber; //pageNumber为datagrid的当前页码 page_Size = $('#dg').datagrid('getPager').data(""pagination"").options.pageSize; //pageSize为datagrid的每页记录条数 } else { $('#dg').datagrid('options').pageNumber = page_Number; //pageNumber为datagrid的当前页码 $('#dg').datagrid('options').pageSize = page_Size; //pageSize为datagrid的每页记录条数 } "; content.Append(template); int index = 0; StringBuilder coditionContent = new StringBuilder(); StringBuilder pagePost = new StringBuilder(); foreach (var item in model.SearchColumns) { string attribute = item.ColumnName.ToFirstUpper(); // 找到一个 coditionContent.AppendFormat("\t\t\tvar txtSearch{0} = $(\"#txtSearch{0}\").val();\r\n", attribute); // var pagePost = "&xxx=" + xxx + "&yyy=" +yyy; if (index == 0) { pagePost.AppendFormat("\t\t\tvar pageData = \"&txtSearch{0}=\" + txtSearch{0}", attribute); } else { pagePost.AppendFormat("+ \"&txtSearch{0}=\" + txtSearch{0}", attribute); } index++; } pagePost.Append(";"); content.Append(coditionContent.ToString()); content.Append(pagePost); if (model.SearchColumns.Count == 0) { content.Append("\t\t\tvar pageData = \"\";\r\n"); } template = string.Format(@" var postData = ""page="" + page_Number + ""&pageSize="" + page_Size + pageData; $(""#dg>tbody"").empty(); $.ajax({{ type: ""POST"", url: ""{0}Manager.aspx?type=load&t="" + new Date().getTime(), data: postData, success: function (msg) {{ var data = eval(""("" + msg + "")""); $('#dg').datagrid('loadData', data.Data); $('#dg').datagrid('getPager').pagination({{ //更新pagination的导航列表各参数 total: data.ItemCount, //总数 pageSize: page_Size, //行数 pageNumber: page_Number//页数 }}); }} }}); }} $(document).ready(function () {{ // $(""#dg"").datagrid(""hideColumn"", ""{1}""); // 不注释会造成翻页不响应 onSelectPage // $(""#dg"").datagrid({{ ""checkOnSelect"": true }}); // $(""#dg"").datagrid({{ ""selectOnCheck"": false }}); SearchTrainee(1, 10); if ($(""#btnsearch"") != null || $(""#btnsearch"") != undefined) {{ $(""#btnsearch"").click(function () {{ SearchTrainee(); }}); }} }}); </script> ", model.TableName.ToFirstUpper(), model.MainKeyIdStr.ToFirstUpper()); content.Append(template); return(content.ToString()); }
public static string CreatePageLoad(EasyUIModel model) { string template = @" protected void Page_Load(object sender, EventArgs e) {{ if (Request.HttpMethod.ToUpper() == ""POST"") {{ string type = Request.QueryString[""type""]; switch (type) {{ {0} }} Response.End(); }}{1} }} "; StringBuilder content = new StringBuilder(); content.Append(@" case ""load"": LoadData(); break; "); if (model.IsAdd) { content.Append(@" case ""add"": AddData(); break; "); } if (model.IsEdit) { content.Append(@" case ""edit"": EditData(); break; "); } if (model.IsBatEdit) { content.Append(@" case ""batedit"": BatEditData(); break; "); } if (model.IsDel) { content.Append(@" case ""delete"": DeleteData(); break; "); } StringBuilder elseContent = new StringBuilder(); if (model.IsExport) { elseContent.AppendFormat(@" else{{ string type = Request.QueryString[""type""]; switch (type) {{ case ""down"": Down(); break; case ""downall"": DownAll(); break; }} }}"); } return(string.Format(template, content.ToString(), elseContent.ToString())); }
public static string CreateDownAndDownAll(EasyUIModel model) { StringBuilder searchContent = new StringBuilder(); StringBuilder searchStrContent = new StringBuilder(); foreach (var item in model.SearchColumns) { string field = item.ColumnName.ToFirstLower(); string attribute = item.ColumnName.ToFirstUpper(); string name = string.Format("HttpUtility.UrlDecode(Request[\"txtSearch{0}\"])", attribute); searchContent.AppendFormat(" {0} {1} = {2};\r\n", item.DBType.ToMsSqlClassType(), field, ExtendMethod.ToStringToType(name, item.DBType)); searchStrContent.AppendFormat(" {0},", field); } // 移除最后的逗号 string searchStrCount = searchStrContent.Length > 0 ? searchStrContent.ToString().Substring(0, searchStrContent.Length - 1) : searchStrContent.ToString(); StringBuilder batContent = new StringBuilder(); batContent.AppendFormat(" string ids = HttpUtility.UrlDecode(Request[\"ids\"]);\r\n", model.MainKeyIdStr.ToFirstLower(), model.MainKeyIdStr.ToFirstUpper()); batContent.Append(" List<string> idList = ids.Split(new char[]{','}, StringSplitOptions.RemoveEmptyEntries).ToList();\r\n"); batContent.Append(searchContent.ToString()); StringBuilder content = new StringBuilder(); content.Append("<table border='1'><thead><tr>"); foreach (var item in model.ColumnList) { content.AppendFormat("<th>{0}</th>", item.Comment); } content.Append("</tr></thead>"); StringBuilder appendFormat = new StringBuilder(); foreach (var item in model.ColumnList) { appendFormat.AppendFormat(@" content.AppendFormat(""<td>{{0}}</td>"", list[i].{0});{1}", item.ColumnName.ToFirstUpper(), Environment.NewLine); } string template = @" private void Down() {{ {0} {1}DAL dal = new {1}DAL(); List<{1}> data = dal.GetPartAll({4}idList); string content = CreateTable(data); Response.Clear(); Response.Buffer = true; Response.Charset = ""UTF-8""; Response.AddHeader(""Content-Disposition"", ""attachment; filename={1}.xls""); Response.ContentEncoding = System.Text.Encoding.GetEncoding(""UTF-8""); Response.ContentType = ""application/ms-excel;charset=UTF-8""; Response.Write(content); Response.Flush(); Response.End(); }} private void DownAll() {{ {0} {1}DAL dal = new {1}DAL(); List<{1}> data = dal.GetAll({5}); string content = CreateTable(data); Response.Clear(); Response.Buffer = true; Response.Charset = ""UTF-8""; Response.AddHeader(""Content-Disposition"", ""attachment; filename={1}.xls""); Response.ContentEncoding = System.Text.Encoding.GetEncoding(""UTF-8""); Response.ContentType = ""application/ms-excel;charset=UTF-8""; Response.Write(content); Response.Flush(); Response.End(); }} private string CreateTable(List<{1}> list) {{ StringBuilder content = new StringBuilder(); // create columns header content.Append(""{2}""); for (int i = 0, len = list.Count; i < len; i++) {{ content.Append(""<tr>""); {3} content.Append(""</tr>""); }} content.Append(""</tbody></table>""); return content.ToString(); }}"; return(string.Format(template, batContent.ToString(), model.TableName.ToFirstUpper(), content.ToString(), appendFormat.ToString(), searchStrContent.ToString(), searchStrCount)); }
/// <summary> /// 创建对象 /// </summary> /// <param name="model"></param> /// <returns></returns> public static string CreateDialog(EasyUIModel model) { StringBuilder dialogContent = new StringBuilder(); if (model.AddColumns.Count > 10 || model.EditColumns.Count > 10 || model.BatEditColumns.Count > 10) { // 编辑等操作需要分成两行进行 return(""); } else { #region 添加 if (model.IsAdd) { // 行数过多,分成两行 string template = @" <div id=""dlg-add"" class=""easyui-dialog"" style=""width: 400px; height: 240px; padding: 10px 20px"" closed=""true"" buttons=""#dlg-add-buttons""> <div class=""ftitle""> </div> <form id=""fm-add"" method=""post"" enctype=""multipart/form-data"" action=""{0}Manager.aspx?type=add"" novalidate=""novalidate""> {1} </form> </div> <div id=""dlg-add-buttons""> <a href=""javascript:void(0)"" class=""easyui-linkbutton c6"" iconcls=""icon-ok"" onclick=""saveAddModel()"" style=""width: 90px"">保 存</a> <a href=""javascript:void(0)"" class=""easyui-linkbutton"" iconcls=""icon-cancel"" onclick=""javascript:$('#dlg-add').dialog('close')"" style=""width: 90px""> 取 消</a> </div>"; StringBuilder content = new StringBuilder(); foreach (var item in model.AddColumns) { string attribute = item.ColumnName.ToFirstUpper(); // 初始化form显示数据 if (item.IsMainKey) { content.AppendFormat(@" <input type=""hidden"" id=""txtAdd{0}"" value="""" />", attribute); } else { //   占一个中文字符 content.AppendFormat(@" <div class=""fitem""> <label for=""txtAdd{0}"">{1}:</label> <input type=""text"" id=""txtAdd{0}"" name=""txtAdd{0}"" {2} /> </div>", attribute, item.Comment.PadLeftStr(4, " "), item.DBType.ToEasyUIInputClassOptStr()); } } dialogContent.Append(string.Format(template, model.TableName.ToFirstUpper(), content.ToString())); } #endregion #region 编辑 if (model.IsEdit) { // 行数过多,分成两行 string template = @" <div id=""dlg-edit"" class=""easyui-dialog"" style=""width: 400px; height: 240px; padding: 10px 20px"" closed=""true"" buttons=""#dlg-edit-buttons""> <div class=""ftitle""> </div> <form id=""fm-edit"" method=""post"" enctype=""multipart/form-data"" action=""{0}Manager.aspx?type=edit"" novalidate=""novalidate""> {1} </form> </div> <div id=""dlg-edit-buttons""> <a href=""javascript:void(0)"" class=""easyui-linkbutton c6"" iconcls=""icon-ok"" onclick=""saveEditModel()"" style=""width: 90px"">保 存</a> <a href=""javascript:void(0)"" class=""easyui-linkbutton"" iconcls=""icon-cancel"" onclick=""javascript:$('#dlg-edit').dialog('close')"" style=""width: 90px""> 取 消</a> </div>"; StringBuilder content = new StringBuilder(); content.AppendFormat(@" <input type=""hidden"" id=""txtEdit{0}"" value="""" />", model.MainKeyIdStr.ToFirstUpper()); foreach (var item in model.EditColumns) { string attribute = item.ColumnName.ToFirstUpper(); // 初始化form显示数据 //   占一个中文字符 content.AppendFormat(@" <div class=""fitem""> <label for=""txtEdit{0}"">{1}:</label> <input type=""text"" id=""txtEdit{0}"" name=""txtEdit{0}"" {2} /> </div>", attribute, item.Comment.PadLeftStr(4, " "), item.DBType.ToEasyUIInputClassOptStr()); } dialogContent.Append(string.Format(template, model.TableName.ToFirstUpper(), content.ToString())); } #endregion #region 批量编辑 if (model.IsBatEdit && model.BatEditColumns.Count > 0) { string template = @" <div id=""dlg-batedit"" class=""easyui-dialog"" style=""width: 400px; height: 240px; padding: 10px 20px"" closed=""true"" buttons=""#dlg-batedit-buttons""> <div class=""ftitle""> </div> <form id=""fm-batedit"" method=""post"" enctype=""multipart/form-data"" action=""{0}Manager.aspx?type=batedit"" novalidate=""novalidate""> {1} </form> </div> <div id=""dlg-batedit-buttons""> <a href=""javascript:void(0)"" class=""easyui-linkbutton c6"" iconcls=""icon-ok"" onclick=""saveBatEditModel()"" style=""width: 90px"">保 存</a> <a href=""javascript:void(0)"" class=""easyui-linkbutton"" iconcls=""icon-cancel"" onclick=""javascript:$('#dlg-batedit').dialog('close')"" style=""width: 90px""> 取 消</a> </div>"; StringBuilder content = new StringBuilder(); content.AppendFormat(@" <input type=""hidden"" id=""txtBatEdit{0}"" value="""" />", model.MainKeyIdStr.ToFirstUpper()); foreach (var item in model.BatEditColumns) { string attribute = item.ColumnName.ToFirstUpper(); //   占一个中文字符 content.AppendFormat(@" <div class=""fitem""> <label for=""txtBatEdit{0}"">{1}:</label> <input type=""text"" id=""txtBatEdit{0}"" name=""txtBatEdit{0}"" {2} /> </div>", attribute, item.Comment.PadLeftStr(4, " "), item.DBType.ToEasyUIInputClassOptStr()); } dialogContent.Append(string.Format(template, model.TableName.ToFirstUpper(), content.ToString())); } #endregion return(dialogContent.ToString()); } }
public static string CreateJsOperation(EasyUIModel model) { StringBuilder content = new StringBuilder(@" <script type=""text/javascript"">"); #region edit if (model.IsEdit) { StringBuilder editSubmitContent = new StringBuilder(); editSubmitContent.AppendFormat("\t\t\tvar txtEdit{0} = $(\"#txtEdit{0}\").textbox(\"getValue\");\r\n", model.MainKeyIdStr.ToFirstUpper()); StringBuilder postDataContent = new StringBuilder("var postData = "); postDataContent.AppendFormat("\"txtEdit{0}=\" + encodeURI(txtEdit{0}) ", model.MainKeyIdStr.ToFirstUpper()); int index = 0; StringBuilder editContent = new StringBuilder(); editContent.AppendFormat(@" $(""#txtEdit{0}"").textbox(""setValue"", row.{0});", model.MainKeyIdStr.ToFirstUpper()); foreach (var item in model.EditColumns) { string attribute = item.ColumnName.ToFirstUpper(); editContent.AppendFormat(@" $(""#txtEdit{0}"").textbox(""setValue"", row.{0});", attribute); editSubmitContent.AppendFormat("\t\t\tvar txtEdit{0} = $(\"#txtEdit{0}\").textbox(\"getValue\");\r\n", attribute); postDataContent.AppendFormat(" + \"&txtEdit{0}=\" + encodeURI(txtEdit{0})", attribute); index++; } if (postDataContent.ToString() == "var postData = ") { postDataContent.Append("\"\""); } postDataContent.Append(";"); content.AppendFormat(@" function editModel() {{ var row = $('#dg').datagrid('getChecked'); if (row) {{ if(row.length==1) {{ row = row[0]; $('#dlg-edit').dialog('open').dialog('setTitle', '编辑成员'); $('#fm-edit').form('load', row); {0} }} else{{ alter(""编辑只能选择一个!""); }} }} }} function saveEditModel(){{ {1} {2} $.ajax({{ type: ""POST"", url: ""{3}Manager.aspx?type=edit"", data: postData, success: function (msg) {{ if (msg == ""0"") {{ $(""#dialog>p"").text(""修改成功!""); SearchTrainee(); }} else {{ $(""#dialog>p"").text(msg); }} $('#dlg').dialog('close'); // close the dialog // show dialog $(""#dialog"").dialog({{ width: 180, height: 100, buttons: {{ Ok: function () {{ $(this).dialog(""close""); }} }} }}); }} }}); }} ", editContent.ToString(), editSubmitContent.ToString(), postDataContent.ToString(), model.TableName.ToFirstUpper()); } #endregion #region add if (model.IsAdd) { StringBuilder addContent = new StringBuilder(); StringBuilder postDataContent = new StringBuilder("var postData = "); int index = 0; foreach (var item in model.AddColumns) { string attribute = item.ColumnName.ToFirstUpper(); addContent.AppendFormat("\t\t\tvar txtAdd{0} = $(\"#txtAdd{0}\").textbox(\"getValue\");\r\n", attribute); if (index == 0) { postDataContent.AppendFormat("\"txtAdd{0}=\" + encodeURI(txtAdd{0}) ", attribute); } else { postDataContent.AppendFormat(" + \"&txtAdd{0}=\" + encodeURI(txtAdd{0})", attribute); } index++; } if (postDataContent.ToString() == "var postData = ") { postDataContent.Append("\"\""); } postDataContent.Append(";"); content.AppendFormat(@" function newModel() {{ $('#dlg-add').dialog('open').dialog('setTitle', '添加成员'); }} function saveAddModel() {{ {0} {1} $.ajax({{ type: ""POST"", url: ""{2}Manager.aspx?type=add"", data: postData, success: function (msg) {{ if (msg == ""0"") {{ $(""#dialog>p"").text(""添加成功!""); SearchTrainee(); }} else {{ $(""#dialog>p"").text(msg); }} $('#dlg').dialog('close'); // close the dialog // show dialog $(""#dialog"").dialog({{ width: 180, height: 100, buttons: {{ Ok: function () {{ $(this).dialog(""close""); }} }} }}); }} }}); }}", addContent.ToString(), postDataContent.ToString(), model.TableName.ToFirstUpper()); } #endregion #region del if (model.IsDel) { string template = string.Format(@" function destroyUser() {{ var row = $('#dg').datagrid('getChecked'); if (row && row.length > 0) {{ $.messager.confirm('Confirm', '确定删除该数据吗?', function (r) {{ if (r) {{ var ids = """"; for(var index=0;i<r.length;i++){{ ids+=r[i].{1}+"",""; }} ids = ids.substring(0, ids.length-1); $.post('{0}Manager.aspx?type=delete', {{ ids: ids }}, function (result) {{ if (result.success) {{ $('#dg').datagrid('reload'); // reload the user data }} else {{ $.messager.show({{ // show error message title: 'Error', msg: result.errorMsg }}); }} }}, 'json'); }} }}); }} }}", model.TableName.ToFirstUpper(), model.MainKeyIdStr.ToFirstUpper()); content.Append(template); } #endregion #region bat edit if (model.IsBatEdit && model.BatEditColumns.Count > 0) { StringBuilder batEditContent = new StringBuilder(); batEditContent.AppendFormat("\t\t\tvar txtBatEdit{0} = $(\"#txtBatEdit{0}\").textbox(\"getValue\");\r\n", model.MainKeyIdStr.ToFirstUpper()); StringBuilder postDataContent = new StringBuilder("var postData = "); postDataContent.AppendFormat("\"txtBatEdit{0}=\" + encodeURI(txtBatEdit{0}) ", model.MainKeyIdStr.ToFirstUpper()); int index = 0; foreach (var item in model.AddColumns) { string attribute = item.ColumnName.ToFirstUpper(); batEditContent.AppendFormat("\t\t\tvar txtBatEdit{0} = $(\"#txtBatEdit{0}\").textbox(\"getValue\");\r\n", attribute); postDataContent.AppendFormat(" + \"&txtBatEdit{0}=\" + encodeURI(txtBatEdit{0})", attribute); index++; } if (postDataContent.ToString() == "var postData = ") { postDataContent.Append("\"\""); } postDataContent.Append(";"); content.AppendFormat(@" function batEditModel() {{ var row = $('#dg').datagrid('getChecked'); if (row && row.length>0) {{ $('#dlg-batedit').dialog('open').dialog('setTitle', '批量编辑成员'); var ids = """"; for(var i=0;i<row.length;i++){{ ids += row[i].{0} + "",""; }} ids = ids.substring(0, ids.length - 1); $(""#txtBatEdit{0}"").val(ids); }} }} function saveBatEditModel() {{ {1} {2} $.ajax({{ type: ""POST"", url: ""{3}Manager.aspx?type=batedit"", data: postData, success: function (msg) {{ if (msg == ""0"") {{ $(""#dialog>p"").text(""批量修改成功!""); SearchTrainee(); }} else {{ $(""#dialog>p"").text(msg); }} $('#dlg').dialog('close'); // close the dialog // show dialog $(""#dialog"").dialog({{ width: 180, height: 100, buttons: {{ Ok: function () {{ $(this).dialog(""close""); }} }} }}); }} }}); }} ", model.MainKeyIdStr.ToFirstUpper(), batEditContent.ToString(), postDataContent.ToString(), model.TableName.ToFirstUpper()); } #endregion #region export if (model.IsExport) { int index = 0; StringBuilder coditionContent = new StringBuilder(); StringBuilder pagePost = new StringBuilder(); foreach (var item in model.SearchColumns) { string attribute = item.ColumnName.ToFirstUpper(); // 找到一个 coditionContent.AppendFormat("\t\t\tvar txtSearch{0} = $(\"#txtSearch{0}\").textbox(\"getValue\");\r\n", attribute); // var pagePost = "&xxx=" + xxx + "&yyy=" +yyy; if (index == 0) { pagePost.AppendFormat("\t\t\tvar pageData = \"&txtSearch{0}=\" + txtSearch{0}", attribute); } else { pagePost.AppendFormat("+ \"&txtSearch{0}=\" + txtSearch{0}", attribute); } index++; } if (model.SearchColumns.Count == 0) { pagePost.Append("\t\t\tvar pageData = \"\";\r\n"); } else { pagePost.Append(";"); } // selectExport content.AppendFormat(@" function selectExport() {{ var row = $('#dg').datagrid('getChecked'); if (row && row.length>0) {{ var ids = """"; for(var i=0;i<row.length;i++){{ ids += row[i].{0} + "",""; }} document.location=""{1}Manager.aspx?type=down&ids="" + ids; }} }} function exportAll() {{ {2} {3} document.location=""{1}Manager.aspx?type=downall"" + pageData; }}", model.MainKeyIdStr.ToFirstUpper(), model.TableName.ToFirstUpper(), coditionContent.ToString(), pagePost.ToString()); } #endregion content.AppendLine("\r\n\t</script>"); return(content.ToString()); }