public static string AsRate(this FapColumn fapColumn, string editAble, string fieldValue) { string ngModel = "formData." + fapColumn.ColName; string ctrlName = fapColumn.ColName; return($"<div id=\"rat-{0}\" class=\"rating inline\"></div><input type=\"text\" {editAble} class=\"form-control hide\" id=\"{ctrlName}\" name=\"{ctrlName}\" ng-model=\"{ngModel}\" value=\"{fieldValue}\">"); }
/// <summary> /// 获取编码类型的字典数据 /// </summary> /// <param name="column"></param> /// <param name="dictionaryToExport"></param> /// <returns></returns> protected void GetCodeDictionaryData(FapColumn column, Dictionary <string, DictionarySheetData> dictionaryToExport) { //string code = Get30String("C_" + refTable); string code = "C_" + column.Id; if (!dictionaryToExport.ContainsKey(code)) { IEnumerable <FapDict> dicData = _dataAccessor.Dictionarys(column.ComboxSource); if (dicData != null && dicData.Count() > 0) { DictionarySheetData dictionarySheetData = new DictionarySheetData(); dictionarySheetData.SheetName = code; dictionarySheetData.Data = new List <DictionaryRowData>(); foreach (var item in dicData) { DictionaryRowData dictionaryRowData = new DictionaryRowData(); dictionaryRowData.KeyData = new CellData() { Data = item.Code, Type = CellDataType.STRING }; dictionaryRowData.ValueData = new CellData() { Data = item.Name, Type = CellDataType.STRING }; dictionarySheetData.Data.Add(dictionaryRowData); } dictionaryToExport.Add(code, dictionarySheetData); } } }
/// <summary> /// 处理SELECT部分 /// </summary> /// <param name="columnList"></param> /// <param name="table"></param> /// <param name="selectBuilder"></param> private void MakeSelectPartition(FapColumn fCol, SelectBuilder select, Column column) { string tableAlias = column.Source.Alias; int mcIndex = 0; //AliasedSource table = select.AddTable(new Table($"{fCol.TableName}"), tableAlias); //select.AddProjection(table.Column(fCol.ColName)); //处理MC字段 if (FapColumn.CTRL_TYPE_COMBOBOX == fCol.CtrlType && !IsGridQuery) { string refAlias = "b" + (mcIndex++); BuildFapDict(select, fCol, column.Source, refAlias); } else if (FapColumn.CTRL_TYPE_REFERENCE == fCol.CtrlType) { string refAlias = "b" + (mcIndex++); BuildRefrenceName(select, fCol, column.Source, refAlias); } //处理MC字段的ID字段 if (this._withId) { if (FapColumn.CTRL_TYPE_REFERENCE == fCol.CtrlType) { string refAlias = "b" + (mcIndex++); BuildRefrenceCode(select, fCol, column.Source, refAlias); } } }
public static IEnumerable <Column> ToColumns(this IEnumerable <FapColumn> fapColumns, IDbContext dbContext, IMultiLangService multiLang) { if (fapColumns.Any()) { if (fapColumns.Any()) { foreach (FapColumn fc in fapColumns) { if (systemDefaultFields.Contains(fc.ColName)) { continue; } yield return(fc.ToColumn(multiLang, dbContext)); //表格参照返回MC的时候用 if (fc.CtrlType == FapColumn.CTRL_TYPE_REFERENCE) { FapColumn fcMC = (FapColumn)fc.Clone(); fcMC.ColName = fc.ColName + "MC"; fcMC.CtrlType = FapColumn.CTRL_TYPE_TEXT; fcMC.ShowAble = 0; yield return(fcMC.ToColumn(multiLang, dbContext)); } } } } }
/// <summary> /// 返回数据sql /// </summary> /// <param name="cols"></param> /// <param name="data"></param> /// <param name="sqlDesc"></param> /// <param name="dialect"></param> /// <returns></returns> public static string ParsingConditionSql(IEnumerable <FapColumn> cols, IDictionary <string, object> data, string sqlDesc, DatabaseDialectEnum dialect) { Regex rgx = new Regex(MatchBigParantheses); MatchCollection matchs = rgx.Matches(sqlDesc); foreach (var mtch in matchs) { var colLabel = mtch.ToString().TrimStart('{').TrimEnd('}').Trim(); FapColumn fcol = cols.FirstOrDefault(c => c.ColComment == colLabel); if (fcol != null) { if (fcol.ColType == FapColumn.COL_TYPE_INT || fcol.ColType == FapColumn.COL_TYPE_LONG || fcol.ColType == FapColumn.COL_TYPE_DOUBLE || fcol.ColType == FapColumn.COL_TYPE_BOOL) { sqlDesc = sqlDesc.Replace(mtch.ToString(), data[fcol.ColName].ToStringOrEmpty()); } else { sqlDesc = sqlDesc.Replace(mtch.ToString(), $"'{data[fcol.ColName].ToStringOrEmpty()}'"); } } } sqlDesc = ReplaceFunc(sqlDesc, dialect); sqlDesc = ReplaceConstant(sqlDesc); string sql = $"select 1 where {sqlDesc}"; if (dialect != DatabaseDialectEnum.MSSQL) { sql = $"select 1 from dual where {sqlDesc}"; } return(sql); }
public static string AsNative(this FapColumn fapColumn, string editAble, string fieldValue) { string ngModel = "formData." + fapColumn.ColName; string ctrlName = fapColumn.ColName; return($"<input readonly type=\"text\" {editAble} class=\"form-control\" id=\"{ctrlName}\" name=\"{ctrlName}\" ng-model=\"{ngModel}\" value=\"{fieldValue}\">"); }
public static string AsEmail(this FapColumn fapColumn, string editAble, string fieldValue) { string ngModel = "formData." + fapColumn.ColName; string ctrlName = fapColumn.ColName; return($"<input type=\"email\" class=\"form-control\" id=\"{ctrlName}\" {editAble} name=\"{ctrlName}\" ng-model=\"{ngModel}\" value=\"{fieldValue}\"/>"); }
public static string AsTextBox(this FapColumn fapColumn, string editAble, string fieldValue) { string ngModel = "formData." + fapColumn.ColName; string ctrlName = fapColumn.ColName; return($"<input type=\"text\" {editAble} class=\"form-control\" id=\"{ctrlName}\" name=\"{ctrlName}\" ng-model=\"{ngModel}\" value=\"{HtmlEncoder.Default.Encode(fieldValue)}\"/>"); }
public static string AsCheckboxList(this FapColumn fapColumn, string editAble, IEnumerable <FapDict> dlist, IList <string> tempList) { string ngModel = "formData." + fapColumn.ColName; string ctrlName = fapColumn.ColName; StringBuilder sbCheckboxList = new StringBuilder(); sbCheckboxList.AppendFormat("<div class=\"control-group form-horizontal checkboxlist\" data-ctrlName='{0}'>", ctrlName); if (dlist.Any()) { foreach (dynamic dict in dlist) { if (tempList.Contains(dict.Code)) { sbCheckboxList.AppendFormat(@"<label> <input name='{0}' type='checkbox' ng-model='{1}' value='{2}' data-text='{3}' " + editAble + @" checked class='ace' /> <span class='lbl'> {3}</span> </label>" , ctrlName, ngModel, dict.Code, dict.Name); } else { sbCheckboxList.AppendFormat(@"<label> <input name='{0}' type='checkbox' ng-model='{1}' value='{2}' data-text='{3}' " + editAble + @" class='ace' /> <span class='lbl'> {3}</span> </label>" , ctrlName, ngModel, dict.Code, dict.Name); } } } sbCheckboxList.AppendFormat("</div>"); return(sbCheckboxList.ToString()); }
public string AddColumnSql(FapColumn fapColumn) { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.AppendLine($"alter table {fapColumn.TableName} add {CreateColumnSql(fapColumn)} ;"); //if (HasDefaultValueConstraint(fapColumn)) //{ // stringBuilder.AppendLine(string.Format("ALTER TABLE {0} ADD CONSTRAINT DF_{0}_{1} DEFAULT ('{2}') FOR {1};", fapColumn.TableName, fapColumn.ColName, fapColumn.ColDefault)); //} stringBuilder.AppendLine(MakeColumnCommentSql(fapColumn)); if (fapColumn.IsMultiLang == 1) //多语 { var languageList = typeof(MultiLanguage.MultiLanguageEnum).EnumItems(); foreach (var item in languageList) { FapColumn mf = (FapColumn)fapColumn.Clone(); mf.ColName = fapColumn.ColName + item.Value; mf.ColComment = fapColumn.ColComment + item.Description; mf.IsMultiLang = 0; stringBuilder.AppendLine($"alter table {mf.TableName} add {CreateColumnSql(mf)} ;"); stringBuilder.Append(MakeColumnCommentSql(mf)).AppendLine(); } } return(stringBuilder.ToString()); }
private static void BuildRefrenceCode(SelectBuilder select, FapColumn column, AliasedSource table, string refAlias) { string colName = column.RefCode; if (colName.IsPresent()) { colName = "Id"; } SelectBuilder inner = new SelectBuilder(); AliasedSource innerTable = inner.AddTable(new Table($"{column.RefTable}"), refAlias); inner.AddProjection(innerTable.Column($"{colName}")); if (column.MultiAble == 1) //是否多选 { } FilterGroup joinFilter = new FilterGroup(Conjunction.And, new EqualToFilter(innerTable.Column($"{column.RefID}"), table.Column(column.ColName)), new LessThanEqualToFilter(innerTable.Column(FapDbConstants.FAPCOLUMN_FIELD_EnableDate), new ParameterLiteral(FapDbConstants.FAPCOLUMN_PARAM_CurrentDate)), new GreaterThanEqualToFilter(innerTable.Column(FapDbConstants.FAPCOLUMN_FIELD_DisableDate), new ParameterLiteral(FapDbConstants.FAPCOLUMN_PARAM_CurrentDate)), new EqualToFilter(innerTable.Column(FapDbConstants.FAPCOLUMN_FIELD_Dr), new ParameterLiteral(FapDbConstants.FAPCOLUMN_PARAM_Dr))); if (column.RefTable.EqualsWithIgnoreCase(nameof(FapColumn))) { IFilter filter = new EqualToFilter(innerTable.Column("TableName"), table.Column("TableName")); joinFilter.AddFilter(filter); } inner.AddWhere(joinFilter); select.AddProjection(inner, $"{column.ColName}MCID"); }
public override void BeforeDynamicObjectUpdate(FapDynamicObject fapDynamicData) { FapColumn newColumn = ToFapColumn(fapDynamicData); string fid = fapDynamicData.Get(nameof(FapColumn.Fid)).ToString(); FapColumn oriColumn = _dbContext.Get <FapColumn>(fid); var table = _dbContext.QueryFirstOrDefault <FapTable>("select * from FapTable where TableName=@TableName", new Dapper.DynamicParameters(new { TableName = oriColumn.TableName })); if (table.IsSync == 1) { try { if (!newColumn.ColName.EqualsWithIgnoreCase(oriColumn.ColName)) { //修改名称,同时alter type _metadataContext.RenameColumn(newColumn, oriColumn.ColName); } else if (!newColumn.ColType.EqualsWithIgnoreCase(oriColumn.ColType) || newColumn.ColLength != oriColumn.ColLength || newColumn.ColPrecision != oriColumn.ColPrecision) { _metadataContext.AlterColumn(newColumn); } //先处理多语字段,之前是多语,现在也是多语 if (oriColumn.IsMultiLang == 1 && newColumn.IsMultiLang == 1) { if (!newColumn.ColName.EqualsWithIgnoreCase(oriColumn.ColName)) { _metadataContext.RenameMultiLangColumn(newColumn, oriColumn.ColName); } else if (!newColumn.ColType.EqualsWithIgnoreCase(oriColumn.ColType) || newColumn.ColLength != oriColumn.ColLength || newColumn.ColPrecision != oriColumn.ColPrecision) { _metadataContext.AlterMultiLangColumn(newColumn); } } else if (oriColumn.IsMultiLang == 0 && newColumn.IsMultiLang == 1) { //之前不是多语现在是多语 _metadataContext.AddMultiLangColumn(newColumn); } if (oriColumn.IsMultiLang == 1 && newColumn.IsMultiLang == 0) { //之前是多语现在不是 _metadataContext.DropMultiLangColumn(newColumn); } } catch (Exception) { throw new FapException("物理表修改列失败!"); } } //更新多语 if (!oriColumn.ColComment.EqualsWithIgnoreCase(newColumn.ColComment) || !oriColumn.ColName.EqualsWithIgnoreCase(newColumn.ColName)) { string oriLangkey = $"{oriColumn.TableName}_{oriColumn.ColName}"; string newLangkey = $"{newColumn.TableName}_{newColumn.ColName}"; string updateMultisql = $"Update {nameof(FapMultiLanguage)} set {nameof(FapMultiLanguage.LangKey)}=@NewLangKey,{nameof(FapMultiLanguage.LangValue)}=@LangValue,{nameof(FapMultiLanguage.LangValueZhCn)}=@LangValue where Qualifier=@Qualifier and LangKey=@LangKey"; var param = new Dapper.DynamicParameters(new { Qualifier = MultiLanguageOriginEnum.FapColumn.ToString(), LangKey = oriLangkey, NewLangKey = newLangkey, LangValue = newColumn.ColComment }); _dbContext.Execute(updateMultisql, param); } }
public string CreateColumnSql(FapColumn fapColumn) { StringBuilder sqlBuilder = new StringBuilder(); sqlBuilder.AppendFormat("[{0}] ", fapColumn.ColName); if (FapColumn.COL_TYPE_STRING.Equals(fapColumn.ColType)) //字符串字段需要处理多语情况 { if (fapColumn.ColLength > 4000) { sqlBuilder.Append(" VARCHAR(MAX)"); } else { sqlBuilder.Append(" VARCHAR(" + (fapColumn.ColLength > 0 ? fapColumn.ColLength : 32) + ")"); } } else if (FapColumn.COL_TYPE_PK.Equals(fapColumn.ColType)) { sqlBuilder.Append(" INT NOT NULL IDENTITY(1,1)"); } else if (FapColumn.COL_TYPE_INT.Equals(fapColumn.ColType)) { sqlBuilder.Append(" INT"); } else if (FapColumn.COL_TYPE_LONG.Equals(fapColumn.ColType)) { sqlBuilder.Append(" BIGINT"); } else if (FapColumn.COL_TYPE_DATETIME.Equals(fapColumn.ColType)) { sqlBuilder.Append(" VARCHAR(19)"); } else if (FapColumn.COL_TYPE_DOUBLE.Equals(fapColumn.ColType)) { sqlBuilder.Append(" DECIMAL(20," + (fapColumn.ColPrecision > 0 ? fapColumn.ColPrecision : 1) + ")"); } else if (FapColumn.COL_TYPE_BOOL.Equals(fapColumn.ColType)) { sqlBuilder.Append(" INT"); } else if (FapColumn.COL_TYPE_UID.Equals(fapColumn.ColType)) { sqlBuilder.Append(" VARCHAR(20)"); } else if (FapColumn.COL_TYPE_BLOB.Equals(fapColumn.ColType)) { //sqlBuilder.Append(" BINARY"); sqlBuilder.Append(" VARCHAR(MAX)"); } else if (FapColumn.COL_TYPE_CLOB.Equals(fapColumn.ColType)) { sqlBuilder.Append(" TEXT"); } else { sqlBuilder.Append(" VARCHAR(" + (fapColumn.ColLength > 0 ? fapColumn.ColLength : 32) + ")"); } return(sqlBuilder.ToString()); }
/// <summary> /// JObject对象转换成FapDynamicObject对象 /// </summary> /// <param name="jobj"></param> /// <param name="dynamciObj">FapDynamicObject对象</param> /// <param name="excludeKeys">指定字段,排除要赋值的字段</param> /// <returns></returns> public static FapDynamicObject ToFapDynamicObject(this JObject jobj, IEnumerable <FapColumn> columnList, params string[] excludeKeys) { FapDynamicObject dynamciObj = new FapDynamicObject(columnList); IEnumerable <JProperty> ojp = jobj.Properties(); foreach (var item in ojp) { bool isExclude = false; foreach (var excludeKey in excludeKeys) { if (excludeKey.Equals(item.Name)) { isExclude = true; break; } } if (isExclude) { continue; } if ("id".Equals(item.Name)) { if (!(string.IsNullOrEmpty(item.Value.ToString()) || "_empty".Equals(item.Value.ToString()))) { dynamciObj.SetValue("Id", item.Value.ToString()); } } else { FapColumn column = columnList.Where(c => c.ColName == item.Name).FirstOrDefault(); if (column != null) { if (column.IsIntType()) //整型 { dynamciObj.SetValue(item.Name, item.Value.ToInt()); } else if (column.IsLongType()) //长整型 { dynamciObj.SetValue(item.Name, item.Value.ToLong()); } else if (column.IsDoubleType()) //浮点型 { dynamciObj.SetValue(item.Name, item.Value.ToDouble()); } else //字符串 { dynamciObj.SetValue(item.Name, item.Value.ToString()); } } else { dynamciObj.SetValue(item.Name, item.Value.ToString()); } } } return(dynamciObj); }
public string RenameColumnSql(FapColumn newColumn, string oldName) { StringBuilder builder = new StringBuilder(); builder.AppendLine($"alter table {newColumn.TableName} change column {oldName} {CreateColumnSql(newColumn)};"); return(builder.ToString()); }
public static string AsPassword(this FapColumn fapColumn, string editAble, string fieldValue) { //密码控件不赋值 string ngModel = "formData." + fapColumn.ColName; string ctrlName = fapColumn.ColName; return($"<input type=\"password\" {editAble} class=\"form-control\" id=\"{ctrlName}\" name=\"{ctrlName}\" ng-model=\"{ngModel}\"/>"); }
public string AlterColumnSql(FapColumn fapColumn) { StringBuilder builder = new StringBuilder(); builder.AppendLine($"alter table {fapColumn.TableName} modify column {CreateColumnSql(fapColumn)};"); return(builder.ToString()); }
public string RenameColumnSql(FapColumn newColumn, string oldName) { StringBuilder builder = new StringBuilder(); builder.AppendLine($"EXEC sp_rename '{newColumn.TableName}.{oldName}', '{newColumn.ColName}' , 'COLUMN';"); builder.AppendLine(AlterColumnSql(newColumn)); return(builder.ToString()); }
private static void SetEditRulesNumber(FapColumn fapColumn, EditRules editRules) { editRules.Number = true; if (fapColumn.MaxValue != 0 || fapColumn.MinValue != 0) { editRules.MaxValue = fapColumn.MaxValue; fapColumn.MinValue = fapColumn.MinValue; } }
public override void AfterEntityInsert(object entity) { FapColumn fapColumn = entity as FapColumn; string langkey = $"{fapColumn.TableName}_{fapColumn.ColName}"; _dbContext.Insert(new FapMultiLanguage { Qualifier = MultiLanguageOriginEnum.FapColumn.ToString(), LangKey = langkey, LangValue = fapColumn.ColComment }); }
/// <summary> /// 是否colspan占一行 /// </summary> /// <param name="column"></param> /// <returns></returns> private bool IsColSpan(FapColumn column) { return(column.CtrlType == FapColumn.CTRL_TYPE_MEMO || column.CtrlType == FapColumn.CTRL_TYPE_IMAGE || column.CtrlType == FapColumn.CTRL_TYPE_FILE || column.CtrlType == FapColumn.CTRL_TYPE_RICHTEXTBOX || column.CtrlType == FapColumn.CTRL_TYPE_NATIVE || column.CtrlType == FapColumn.CTRL_TYPE_RANGE); }
public static string AsRange(this FapColumn fapColumn, string editAble, string fieldValue) { string ngModel = "formData." + fapColumn.ColName; string ctrlName = fapColumn.ColName; if (fieldValue.IsMissing() || fieldValue == "0") { fieldValue = "1,2"; } return($"<input type=\"hidden\" class=\"form-control slider-input\" id=\"{ctrlName}\" name=\"{ctrlName}\" ng-model=\"{ngModel}\" value=\"{fieldValue}\">"); }
private void RecurseFilterDesc(string parentGroup, string tableName, IEnumerable <JObject> jsonos, IEnumerable <FapColumn> cols, List <FilterDescModel> sqlBuilder) { foreach (var jsono in jsonos) { string group = jsono.GetValue("groupOp").ToString() == "AND" ? "所有" : "任意";//AND、OR List <JObject> rules = jsono.GetValue("rules").Children <JObject>().ToList(); int i = 0; if (rules.Count > 0) { foreach (JObject o in rules) { //特殊处理MC参照字段 string colName = o.GetValue("field").ToString(); string op = o.GetValue("op").ToString(); string data = o.GetValue("data").ToString(); if (colName.EndsWith("MC", false, System.Globalization.CultureInfo.CurrentCulture)) { colName = colName.Substring(0, colName.Length - 2); } FapColumn col = cols.FirstOrDefault(c => c.ColName == colName); if (col.CtrlType == FapColumn.CTRL_TYPE_COMBOBOX) { data = _dbContext.Dictionary(col.ComboxSource, data)?.Name; } if (!string.IsNullOrEmpty(op))// && !string.IsNullOrEmpty(data)) { FilterDescModel model = new FilterDescModel(); i++; if (i != 1) { model.Group = group; } model.FilterDesc = col.ColComment; model.FilterOper = Q2OperDesc[op]; model.FilterResult = data; sqlBuilder.Add(model); } } //处理AND和OR //sqlBuilder.Append(" ").Append(parentGroup).Append(" "); } //子条件 if (jsono.GetValue("groups") != null) { List <JObject> subs = jsono.GetValue("groups").Children <JObject>().ToList(); RecurseFilterDesc(group, tableName, subs, cols, sqlBuilder); } } }
public static string AsRichTextBox(this FapColumn fapColumn, string fieldValue) { string ctrlName = fapColumn.ColName; string required = " data-nullable=1 "; if (fapColumn.NullAble == 0 && fapColumn.ShowAble == 1) { required = " data-nullable=0 "; } return($"<div class=\"form-control wysiwyg-editor\" name=\"{ctrlName}\" id=\"{ctrlName}\" {required} >{fieldValue}</div>"); }
public string DropMultiLangColumnSql(FapColumn fapColumn) { StringBuilder builder = new StringBuilder(); var languageList = typeof(MultiLanguage.MultiLanguageEnum).EnumItems(); foreach (var lang in languageList) { string colName = fapColumn.ColName + lang.Value; builder.AppendLine($"alter table {fapColumn.TableName} drop column {colName};"); } return(builder.ToString()); }
public string AlterColumnSql(FapColumn fapColumn) { StringBuilder builder = new StringBuilder(); //if (HasDefaultValueConstraint(fapColumn)) //{ // builder.AppendLine($"ALTER TABLE {fapColumn.TableName} DROP CONSTRAINT DF_{fapColumn.TableName}_{fapColumn.ColName};"); //} builder.AppendLine($"alter table {fapColumn.TableName} alter column {CreateColumnSql(fapColumn)};"); return(builder.ToString()); }
public static string AsFile(this FapColumn fapColumn, string editAble, string frmid, string fieldValue, string lableName) { string ngModel = "formData." + fapColumn.ColName; string ctrlName = fapColumn.ColName; StringBuilder sbFile = new StringBuilder(); sbFile.AppendFormat("<button id=\"file{0}{1}\" " + editAble + " class=\"btn btn-info\" type=\"button\"><i class=\"ace-icon fa fa-paperclip\"></i>附件</button>", frmid, ctrlName).AppendLine(); sbFile.AppendFormat("<input type=\"text\" class=\"form-control attachment hidden\" id=\"{0}\" name=\"{0}\" ng-model=\"{1}\" value=\"{2}\" data-text=\"{3}\" data-nullable={4} data-editable={5} />", ctrlName, ngModel, fieldValue, lableName, fapColumn.NullAble, fapColumn.EditAble).AppendLine(); sbFile.AppendFormat("<label class=\"text-muted\">支持文件格式({0})</label>", fapColumn.FileSuffix.IsMissing() ? "*.*" : fapColumn.FileSuffix).AppendLine(); sbFile.AppendLine($"<div id=\"{ctrlName}_filelist\"></div>"); return(sbFile.ToString()); }
public static string AsImage(this FapColumn fapColumn, string fieldValue) { string ngModel = "formData." + fapColumn.ColName; string ctrlName = fapColumn.ColName; StringBuilder sbImage = new StringBuilder(); sbImage.AppendLine("<span class=\"profile-picture\">"); sbImage.AppendFormat(" <img id=\"avatar{0}\" data-pk=\"{1}\" style=\"width:160px;\" class=\"editable img-responsive\" src=\"{2}\" />", ctrlName, fieldValue, $"/Component/Photo/{fieldValue}?v={DateTime.Now.Ticks}").AppendLine(); sbImage.AppendLine(" </span>"); sbImage.AppendFormat(" <input type=\"text\" id=\"{0}\" name=\"{0}\" ng-model=\"{1}\" value=\"{2}\" class=\"form-control hidden\" />", ctrlName, ngModel, fieldValue).AppendLine(); return(sbImage.ToString()); }
public static string AsCombobox(this FapColumn fapColumn, string editAble, IEnumerable <FapDict> dicList, List <string> tempList, string fieldValue) { string ngModel = "formData." + fapColumn.ColName; string ctrlName = fapColumn.ColName; StringBuilder sbCombobox = new StringBuilder(); if (fapColumn.MultiAble == 0) { sbCombobox.AppendFormat(" <select id=\"{0}\" name=\"{0}\" ng-model=\"{1}\" " + editAble + " class=\"form-control chosen-select\" data-placeholder=\"请选择\" >", ctrlName, ngModel).AppendLine(); sbCombobox.AppendLine("<option value=''></option>"); if (dicList.Any()) { foreach (FapDict dict in dicList) { if (dict.Code == fieldValue) { sbCombobox.AppendLine("<option value='" + dict.Code + "' selected>" + dict.Name + "</option>"); } else { sbCombobox.AppendLine("<option value='" + dict.Code + "' >" + dict.Name + "</option>"); } } } sbCombobox.AppendLine("</select>"); } else { sbCombobox.AppendFormat("<div class=\"control-group form-horizontal checkboxlist\" data-ctrlName='{0}'>", ctrlName); if (dicList.Any()) { foreach (FapDict dict in dicList) { if (tempList.Contains(dict.Code)) { sbCombobox.AppendFormat(@"<label> <input name='{0}' type='checkbox' ng-model='{1}' value='{2}' data-text='{3}' " + editAble + @" checked class='ace' /> <span class='lbl'> {3}</span> </label>" , ctrlName, ngModel, dict.Code, dict.Name); } else { sbCombobox.AppendFormat(@"<label> <input name='{0}' type='checkbox' ng-model='{1}' value='{2}' data-text='{3}' " + editAble + @" class='ace' /> <span class='lbl'> {3}</span> </label>" , ctrlName, ngModel, dict.Code, dict.Name); } } } sbCombobox.AppendFormat("</div>"); } return(sbCombobox.ToString()); }
public static string AsDateTime(this FapColumn fapColumn, string editAble, string fieldValue) { string ngModel = "formData." + fapColumn.ColName; string ctrlName = fapColumn.ColName; StringBuilder sbDateTime = new StringBuilder(); sbDateTime.AppendLine("<span class=\"input-icon input-icon-right\">"); sbDateTime.AppendFormat(" <input class=\"form-control datetime-picker\" id=\"{0}\" name=\"{0}\" " + editAble + " ng-model=\"{1}\" type=\"text\" value=\"{2}\"/>", ctrlName, ngModel, fieldValue).AppendLine(); //sbFormGroup.AppendLine(" <span class=\"input-group-addon\">"); sbDateTime.AppendLine(" <i class=\"ace-icon fa fa-clock-o block\"></i>"); sbDateTime.AppendLine(" </span>"); // sbFormGroup.AppendLine(" </div>"); return(sbDateTime.ToString()); }