Exemplo n.º 1
0
        public static string CreateSearchContent(EasyUIModel model)
        {
            string template = @"
    <div class=""demo-info"" style=""margin-bottom: 10px"">
        <div class=""demo-tip icon-tip"">
            &nbsp;</div>
        <div>{0}</div>
    </div>
";

            StringBuilder searchContent = new StringBuilder();

            foreach (var item in model.SearchColumns)
            {
                string attribute = item.ColumnName.ToFirstUpper();
                searchContent.AppendFormat("&nbsp;&nbsp;<label for=\"txtSearch{0}\">{1}:</label><input type=\"text\" id=\"txtSearch{0}\" />", attribute, item.Comment);
            }

            if (searchContent.ToString() != string.Empty)
            {
                // 非空。添加查询按钮
                searchContent.Append("&nbsp;&nbsp;<input type=\"button\" id=\"btnsearch\" value=\"查询\" />");
            }

            return(string.Format(template, searchContent.ToString()));
        }
Exemplo n.º 2
0
        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()));
        }
Exemplo n.º 3
0
        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()));
        }
Exemplo n.º 4
0
        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()));
        }
Exemplo n.º 5
0
        public string CreateFactory(EasyUIModel model)
        {
            StringBuilder facContent = new StringBuilder();

            facContent.Append(EasyUIFactoryHelper.CreateFactory(model));

            return(facContent.ToString());
        }
Exemplo n.º 6
0
        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()));
        }
Exemplo n.º 7
0
        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()));
        }
Exemplo n.º 8
0
        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());
        }
Exemplo n.º 9
0
        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());
        }
Exemplo n.º 10
0
        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()));
        }
Exemplo n.º 11
0
        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()));
        }
Exemplo n.º 12
0
        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);
            }
        }
Exemplo n.º 13
0
        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());
        }
Exemplo n.º 14
0
        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());
        }
Exemplo n.º 15
0
        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()));
        }
Exemplo n.º 16
0
        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()));
        }
Exemplo n.º 17
0
        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()));
        }
Exemplo n.º 18
0
        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;
            }
        }
Exemplo n.º 19
0
        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()));
        }
Exemplo n.º 20
0
        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);
            }
        }
Exemplo n.º 21
0
        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()));
        }
Exemplo n.º 22
0
 /// <summary>
 /// 创建Model类
 /// </summary>
 /// <param name="model">模板对象</param>
 public string CreateModel(EasyUIModel model)
 {
     return(EasyUIModelHelper.GetClassString(model));
 }
Exemplo n.º 23
0
        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());
        }
Exemplo n.º 24
0
        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());
        }
Exemplo n.º 25
0
        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()));
        }
Exemplo n.º 26
0
        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));
        }
Exemplo n.º 27
0
        /// <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
                        {
                            // &#12288; 占一个中文字符
                            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, "&emsp;"), 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显示数据
                        // &#12288; 占一个中文字符
                        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, "&emsp;"), 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();

                        // &#12288; 占一个中文字符
                        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, "&emsp;"), item.DBType.ToEasyUIInputClassOptStr());
                    }

                    dialogContent.Append(string.Format(template, model.TableName.ToFirstUpper(), content.ToString()));
                }
                #endregion

                return(dialogContent.ToString());
            }
        }
Exemplo n.º 28
0
        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());
        }