private static string BuliderFormView(DyncField dyncField, string value) { var html = string.Empty; if (dyncField.Type == "name" && dyncField.Fmt == "extend") { var surname = string.Empty; var name = string.Empty; if (value.IsNotNullOrEmpty()) { var val = value.Split('.'); if (val.Length > 1) { surname = val[0]; name = val[1]; } } html = FormTemp.GetTempByKey("formItemName", dyncField.Lbl, dyncField.Name, dyncField.Reqd, dyncField.Uuiq, surname, name ); } else if (dyncField.Type == "file") { html = FormTemp.GetTempByKey("formFileItem", dyncField.Lbl, dyncField.Name, FormItemView.BuliderFormItemView(dyncField, value)); } else if (dyncField.Type == "section") { html = FormTemp.GetTempByKey("section", dyncField.Lbl, dyncField.Instr); } else { html = FormTemp.GetTempByKey("formItem", dyncField.Lbl, FormItemView.BuliderFormItemView(dyncField, value), (dyncField.Instr ?? string.Empty)); } return(html); }
private void SetDyncFieldInfo(DyncField item, string formCode, List <DyncField> dyncField) { item.Info = CreateDyncFieldInfoByType(item.Type, item.Fldsz); item.Name = GetSourceName(item.Lbl).UpperFirst().TrimSpace(); while (dyncField.Any(t => t.Name == item.Name)) { item.Name = $"_{StringUitl.NextRandom(100000000, 1)}"; } item.DyncForm = formCode; item.Updatetime = DateTime.UtcNow; if (item.Itms.IsNotNull() && item.Source == 0) { item.SourceValue = item.Itms.SerializeObjectFilterNullValue().Trim(); } if (item.Secdesc.IsNotNullOrEmpty()) { item.Instr = item.Secdesc; } }
public static string BuliderFormItemView(DyncField dyncField, string value) { SetSourceValue(dyncField); var builder = CreateTagBuilder(dyncField.Type); var htmlAttributes = new Dictionary <string, string>() { { "data-name", dyncField.Name }, { "name", dyncField.Name }, { "id", dyncField.Name }, { "data-lbl", dyncField.Lbl }, { "data-reqd", dyncField.Reqd }, { "data-uuid", dyncField.Uuiq ?? "0" } }; var defalutValue = value ?? dyncField.DefaultValue ?? string.Empty; if (dyncField.Type == "date" && defalutValue.IsNullOrEmpty()) { defalutValue = DateTime.Now.ToString("yyyy-MM-dd"); } if (dyncField.Type == "datetime" && defalutValue.IsNullOrEmpty()) { defalutValue = DateTime.Now.ToString("yyyy-MM-dd HH:ss"); } if (dyncField.Type == "time" && defalutValue.IsNullOrEmpty()) { defalutValue = DateTime.Now.ToString("HH:ss"); } if (dyncField.Type == "number" || dyncField.Type == "text" || dyncField.Type == "url" || dyncField.Type == "email" || dyncField.Type == "map" || dyncField.Type == "phone" || dyncField.Type == "name" || dyncField.Type == "address" || dyncField.Type == "time" || dyncField.Type == "date" || dyncField.Type == "datetime") { htmlAttributes.Add("value", defalutValue); htmlAttributes.Add("placeholder", "请入输" + dyncField.Lbl); } if (dyncField.Type == "file") { htmlAttributes.Add("value", defalutValue); } if (dyncField.Type == "name") { htmlAttributes.Add("data-fmt", dyncField.Fmt); } if (dyncField.Type == "textarea") { builder.SetInnerText(defalutValue); htmlAttributes.Add("placeholder", "请入输" + dyncField.Lbl); } if (dyncField.Type == "dropdown2") { htmlAttributes.Add("data-pn", dyncField.PN ?? "2"); htmlAttributes.Add("data-select", dyncField.Name); } if (dyncField.Type == "dropdown") { builder.InnerHtml = GetDropdownElement(dyncField, "<option value='" + _checked + "'>" + _value + "</option>", string.Empty); htmlAttributes.Add("value", defalutValue); } if (dyncField.Type == "checkbox" || dyncField.Type == "radio") { builder.InnerHtml = GetDropdownElement(dyncField, FormTemp.GetTempByKey(dyncField.Type, dyncField.Id.ToString(), _isChecked, _checked, _value), defalutValue); } var required = string.Empty; //if (dyncField.Reqd == "1") //{ // htmlAttributes.Add("required", ""); // htmlAttributes.Add("oninvalid", "setCustomValidity('请入输" + dyncField.Name + "!');"); // htmlAttributes.Add("oninput", "setCustomValidity('');"); //} //builder.IdAttributeDotReplacement = "-"; //builder.GenerateId(dyncField.Id.ToString()); builder.MergeAttributes(htmlAttributes); return(builder.TagName == "input" ? builder.ToString(TagRenderMode.SelfClosing) : builder.ToString(TagRenderMode.Normal)); }
private static void SetSourceValue(DyncField dyncField) { if (dyncField.Source == 0) { return; } if (dyncField.Source == 1 && dyncField.SourceValue.IsNullOrEmpty()) { throw new Exception("url Param is null error"); } var urlParam = dyncField.SourceValue.Split('=')[1]; if (urlParam.IsNullOrEmpty()) { throw new Exception("url urlParam is length number error"); } var url = dyncField.SourceValue.Split('?')[0]; if (url.IsNullOrEmpty()) { throw new Exception("api url error"); } var str = urlParam.Split('|'); if (str.Length < 3) { throw new Exception("url Param is length number error"); } var dyncExp = new DyncExp(); if (str[0].IsNullOrEmpty()) { throw new Exception("url table Param is error"); } dyncExp.Table = str[0]; if (str[1].IsNullOrEmpty()) { throw new Exception("url FiledName Param is error"); } dyncExp.FiledName = str[1]; if (str[2].IsNotNullOrEmpty()) { dyncExp.Param = str[2].Split(',').ToDictionary(t => t.Split(':')[0], x => x.Split(':')[1]); } var result = ApiProxy.Send(Common.Http.HttpMethod.POST, url, new StringContent(dyncExp.SerializeObject(), Encoding.UTF8)); if (result.IsNullOrEmpty() || result == "null") { return; } dyncField.Itms = result.DeserializeObject <IEnumerable <SQLDynamicItem> >().Select(t => { return(new DropdownModel() { value = t.Value, Checked = t.Value }); }); }
public DynamicDataservices() { _sQLDynamic = new SQLDynamic("DyncData"); _dyncForm = new DyncForm(); _dyncField = new DyncField(); }