private void FetchFormHtmlAndScript(FormConfig form, ref string formLayout, ref string script) { formLayout = Server.HtmlDecode(form.LayOutSetting); var ctrlAttrList = form.GetCtrlAttrList(); foreach (var ctrlAttr in ctrlAttrList) { //控件html var ctrl = GeneralEasyuiCtrl(ctrlAttr); if (ctrl == null) { continue; } script += ctrl.GetScript() + "\n\r"; string easyuiCtrlHtml = ctrl.GetCtrlHtm(); if (string.IsNullOrEmpty(easyuiCtrlHtml)) { continue; } //替换标签 string fieldToReplace = ctrlAttr.GetValue("ColumnName"); if (string.IsNullOrEmpty(fieldToReplace)) { fieldToReplace = ctrlAttr.GetValue("FieldName"); } if (!string.IsNullOrEmpty(formLayout)) { formLayout = formLayout.Replace("{" + fieldToReplace + "}", easyuiCtrlHtml); } } }
public JsonResult GetCtrlList() { string id = QueryString("formId"); FormConfig fc = UnitOfWork.GetByKey <FormConfig>(id); fc.CheckNotNull("FormConfig"); return(Json(fc.GetCtrlAttrList())); }
public JsonResult CreateLayout(string formId, string layoutType) { formId.CheckNotNullOrEmpty("formId"); FormConfig cForm = UnitOfWork.GetByKey <FormConfig>(formId); cForm.CheckNotNull("FormConfig"); var ctrlList = cForm.GetCtrlAttrList(); StringBuilder formHtmlSB = new StringBuilder(); //title //hidden dom formHtmlSB.Append("<input id='Id' name='Id' type='hidden' />"); var noCtrlList = ctrlList.Where(a => string.IsNullOrEmpty(a.GetValue("CtrlType"))); foreach (var ctrl in noCtrlList) { if (!string.IsNullOrEmpty(ctrl.GetValue("FieldName"))) { formHtmlSB.Append(string.Format("<input id='{0}' name='{0}' type='hidden' />", ctrl.GetValue("FieldName"))); } } //visible dom var withCtrlList = ctrlList.Where(a => !string.IsNullOrEmpty(a.GetValue("CtrlType"))).ToList(); int ctrlCount = withCtrlList.Count(); double dCol = 0; double.TryParse(layoutType, out dCol); if (dCol == 0) { return(Json("")); } double tmp = ctrlCount / dCol; int rowCount = Convert.ToInt32(Math.Ceiling(tmp)); double leftTdWithPercent = 15; double rightTdWithPercent = Math.Round(100 / dCol, 2) - 15; if (rightTdWithPercent < 0) { rightTdWithPercent = leftTdWithPercent = Math.Round(100 / Convert.ToDouble(2 * dCol), 0); } formHtmlSB.Append("<table class='groupTable'>"); //title formHtmlSB.Append(string.Format("<tr><td colspan='{0}' class='title'>{1}</td></tr>", 2 * dCol, cForm.Name)); //row int ctrlIndex = 0; for (int i = 0; i < rowCount; i++) { formHtmlSB.Append("<tr>"); for (int j = 0; j < dCol; j++) { string ctrlColName = ""; if (ctrlIndex < withCtrlList.Count) { var ctrl = withCtrlList[ctrlIndex]; ctrlColName = ctrl.GetValue("ColumnName"); if (string.IsNullOrEmpty(ctrlColName)) { ctrlColName = ctrl.GetValue("FieldName"); } } //left formHtmlSB.Append(string.Format("<td style='width:{0}%'>{1}</td>", leftTdWithPercent, string.IsNullOrEmpty(ctrlColName) ? "" : (ctrlColName + ":"))); //right formHtmlSB.Append(string.Format("<td style='width:{0}%'>{1}</td>", rightTdWithPercent, string.IsNullOrEmpty(ctrlColName) ? "" : ("{" + ctrlColName + "}"))); ctrlIndex++; } formHtmlSB.Append("</tr>"); } formHtmlSB.Append("</table>"); return(Json(formHtmlSB.ToString())); }