string CreateHeadAttrs(IFieldInfoEx field, int index, int sortField, DataRow sortRow) { HtmlAttributeBuilder builder = new HtmlAttributeBuilder(); Tk5FieldInfoEx tk5Field = field.Convert <Tk5FieldInfoEx>(); if (tk5Field.DataType == TkDataType.Text || (tk5Field.ListDetail != null && tk5Field.ListDetail.TextHead)) { builder.Add("class", "text-left text-nowrap"); } else { builder.Add("data-sort", index.ToString()); string order = sortRow.GetString("Order"); string sortClass = string.Empty; if (index == sortField) { order = order == "DESC" ? "ASC" : "DESC"; sortClass = "sort-" + order; } builder.Add("data-order", order); builder.Add("class", HtmlUtil.MergeClass("text-left text-nowrap", sortClass.ToLower())); } return(builder.CreateAttribute()); }
string CreateHeadAttrs(IFieldInfoEx field, int index, int sortField, ListSortInfo sortRow) { HtmlAttributeBuilder builder = new HtmlAttributeBuilder(); Tk5FieldInfoEx tk5Field = field.Convert<Tk5FieldInfoEx>(); builder.Add("class", "text-left text-nowrap"); //if (tk5Field.DataType == TkDataType.Text || (tk5Field.ListDetail != null && tk5Field.ListDetail.TextHead)) //{ // builder.Add("class", "text-left text-nowrap"); //} //else //{ // builder.Add("data-sort", index.ToString()); // string order = sortRow.Order; // string sortClass = string.Empty; // if (index == sortField) // { // order = order == "DESC" ? "ASC" : "DESC"; // sortClass = "sort-" + order; // } // builder.Add("data-order", order); // builder.Add("class", HtmlUtil.MergeClass("text-left text-nowrap", sortClass.ToLower())); //} return builder.CreateAttribute(); }
public string DisplayValue(object value, Tk5FieldInfoEx field, IFieldValueProvider rowValue) { TkDebug.AssertArgumentNull(field, "field", this); if (DisplayUtil.IsNull(value)) { return(string.Empty); } if (field.Upload != null) { Tk5UploadConfig upload = field.AssertUpload(); IUploadProcessor2 processor = upload.CreateUploadProcessor2(); //IFieldValueProvider provider = new DataRowFieldValueProvider(row, row.Table.DataSet); string url = processor.Display(upload, rowValue); HtmlAttribute cssAttr = string.IsNullOrEmpty(CssClass) ? null : new HtmlAttribute("class", CssClass); HtmlAttributeBuilder builder = new HtmlAttributeBuilder(); builder.Add("src", url); builder.Add(cssAttr); return(string.Format(ObjectUtil.SysCulture, "<img {0} />", builder.CreateAttribute())); } return(string.Empty); }
string CreateColAttrs(IFieldInfoEx field, int index, int sortField) { Tk5FieldInfoEx tk5Field = field.Convert<Tk5FieldInfoEx>(); HtmlAttributeBuilder builder = new HtmlAttributeBuilder(); if (tk5Field.ListDetail != null && tk5Field.ListDetail.ListWidth > 0) builder.Add("width", tk5Field.ListDetail.ListWidth); if (index == sortField) builder.Add((HtmlAttribute)"selected"); return builder.CreateAttribute(); }
private static string InternalTextArea(Tk5FieldInfoEx field, DataRow row, HtmlAttribute addition, bool needId) { TkDebug.AssertArgumentNull(field, "field", null); HtmlAttributeBuilder builder = new HtmlAttributeBuilder(); AddInputAttribute(field, builder); AddNormalAttribute(field, builder, field.NickName, needId); builder.Add(addition); return string.Format(ObjectUtil.SysCulture, "<textarea {0}>{1}</textarea>{2}", builder.CreateAttribute(), StringUtil.EscapeHtml(row.GetString(field.NickName)), ERROR_LABEL); }
string CreateColAttrs(IFieldInfoEx field, int index, int sortField) { Tk5FieldInfoEx tk5Field = field.Convert <Tk5FieldInfoEx>(); HtmlAttributeBuilder builder = new HtmlAttributeBuilder(); if (tk5Field.ListDetail != null && tk5Field.ListDetail.ListWidth > 0) { builder.Add("width", tk5Field.ListDetail.ListWidth); } if (index == sortField) { builder.Add((HtmlAttribute)"selected"); } return(builder.CreateAttribute()); }
public string DisplayValue(object value, Tk5FieldInfoEx field, IFieldValueProvider rowValue, string linkedValue) { if (rowValue == null) { return(linkedValue); } string linkUrl = HrefDisplayConfig.ResolveRowValue(rowValue, Content); if (string.IsNullOrEmpty(linkUrl)) { return(linkedValue); } else { linkUrl = AppUtil.ResolveUrl(linkUrl); } HtmlAttributeBuilder builder = new HtmlAttributeBuilder(); if (!string.IsNullOrEmpty(Target)) { builder.Add("target", Target); } builder.Add("href", "#"); string urlName = Mode == DisplayMode.Normal ? "data-url" : "data-dialog-url"; builder.Add(urlName, linkUrl); if (Mode == DisplayMode.Dialog && !string.IsNullOrEmpty(DialogTitle)) { string title = HrefDisplayConfig.ResolveRowValue(rowValue, DialogTitle); builder.Add("data-title", title); } return(string.Format(ObjectUtil.SysCulture, "<a {0}>{1}</a>", builder.CreateAttribute(), StringUtil.EscapeHtml(linkedValue))); }
private static string InternalCombo(Tk5FieldInfoEx field, string name, DataRow row, DataSet model, bool needId) { HtmlAttributeBuilder builder = new HtmlAttributeBuilder(); AddNormalAttribute(field, builder, name, needId); TkDebug.AssertNotNull(field.Decoder, "Combo控件需要配置Decoder", field); DataTable codeTable = model.Tables[field.Decoder.RegName]; StringBuilder options = new StringBuilder(); if (field.IsEmpty) { string emptyTitle; if (field.Extension != null && field.Extension.EmptyTitle != null) emptyTitle = field.Extension.EmptyTitle; else emptyTitle = string.Empty; options.Append("<option value=\"\">").Append(emptyTitle).AppendLine("</option>"); } string value = row.GetString(name); if (codeTable != null) { foreach (DataRow codeRow in codeTable.Rows) { string codeValue = codeRow.GetString("Value"); options.AppendFormat(ObjectUtil.SysCulture, "<option value=\"{0}\"{1}>{2}</option>\r\n", codeValue, codeValue == value ? " selected" : string.Empty, codeRow.GetString("Name")); } } return string.Format(ObjectUtil.SysCulture, "<select {0}>{1}</select>{2}", builder.CreateAttribute(), options, ERROR_LABEL); }
public static string Upload(this Tk5FieldInfoEx field, DataRow row, bool needId) { TkDebug.AssertArgumentNull(field, "field", null); var upload = field.AssertUpload(); HtmlAttributeBuilder builder = new HtmlAttributeBuilder(); builder.Add("data-control", "Upload"); builder.Add("data-fileSize", upload.SizeField); builder.Add("data-serverPath", upload.ServerPathField); builder.Add("data-contentType", upload.MimeTypeField); AddNormalAttribute(field, builder, field.NickName, needId, true); IUploadProcessor processor = upload.CreateUploadProcessor(); UploadInfo info = row == null ? null : processor.CreateValue(upload, row); if (info != null) builder.Add("data-value", info.ToJson()); return string.Format(ObjectUtil.SysCulture, Html.Upload, builder.CreateAttribute(), ERROR_LABEL); }
public static string Detail(this Tk5FieldInfoEx field, DataRow row, bool showHint, bool needId) { TkDebug.AssertArgumentNull(field, "field", null); HtmlAttributeBuilder builder = new HtmlAttributeBuilder(); AddNormalAttribute(field, builder, field.NickName, needId, true); builder.Add("data-value", row.GetString(field.NickName)); HtmlAttribute classAttr = builder["class"]; if (classAttr == null) builder.Add("class", "detail-content"); else classAttr.Value = HtmlUtil.MergeClass(classAttr.Value, "detail-content"); return string.Format(ObjectUtil.SysCulture, "<div {0}>{1}</div>", builder.CreateAttribute(), DisplayValue(field, row, showHint)); }
private static string InternalMultiEasySearch(Tk5FieldInfoEx field, string nickName, DataRow row, bool needId) { HtmlAttributeBuilder textBuilder = new HtmlAttributeBuilder(); textBuilder.Add("type", "text"); textBuilder.Add("data-regName", field.Decoder.RegName); AddInputAttribute(field, textBuilder); AddNormalAttribute(field, textBuilder, nickName, needId); StringBuilder multiItems = new StringBuilder(); string decodeValue = row.GetString(nickName + "_Name"); if (string.IsNullOrEmpty(decodeValue)) multiItems.AppendFormat(Html.MultiEasySearchItem, "hidden", string.Empty, string.Empty); else { MultipleDecoderData data = MultipleDecoderData.ReadFromString(decodeValue); HtmlAttributeBuilder decodeBuilder = new HtmlAttributeBuilder(); foreach (var item in data) { decodeBuilder.Clear(); decodeBuilder.Add("data-id", item.Value); decodeBuilder.Add("data-name", item.Name); multiItems.AppendFormat(Html.MultiEasySearchItem, "multi-item", item.Name, decodeBuilder.CreateAttribute()); } } string easyUrl = "Library/WebModuleContentPage.tkx?Source=EasySearch&useSource=true".AppVirutalPath(); string dialogUrl = ("Library/WebModuleRedirectPage.tkx?Source=EasySearchRedirect&useSource=true&RegName=" + field.Decoder.RegName).AppVirutalPath(); return string.Format(ObjectUtil.SysCulture, Html.MultipleEasySearch, multiItems, textBuilder.CreateAttribute(), ERROR_LABEL, StringUtil.EscapeHtmlAttribute(easyUrl), StringUtil.EscapeHtmlAttribute(dialogUrl)); }
private static string InternalEasySearch(Tk5FieldInfoEx field, string nickName, DataRow row, bool needId) { HtmlAttributeBuilder hiddenBuilder = new HtmlAttributeBuilder(); hiddenBuilder.Add("type", "hidden"); hiddenBuilder.Add("value", row.GetString(nickName)); string hiddenName = "hd" + nickName; if (needId) hiddenBuilder.Add("id", hiddenName); hiddenBuilder.Add("name", hiddenName); HtmlAttributeBuilder textBuilder = new HtmlAttributeBuilder(); textBuilder.Add("type", "text"); textBuilder.Add("data-regName", field.Decoder.RegName); AddInputAttribute(field, textBuilder); AddNormalAttribute(field, textBuilder, nickName, needId); textBuilder.Add("value", row.GetString(nickName + "_Name")); string easyUrl = "Library/WebModuleContentPage.tkx?Source=EasySearch&useSource=true".AppVirutalPath(); string dialogUrl = ("Library/WebModuleRedirectPage.tkx?Source=EasySearchRedirect&useSource=true&RegName=" + field.Decoder.RegName).AppVirutalPath(); return string.Format(ObjectUtil.SysCulture, Html.EasySearch, hiddenBuilder.CreateAttribute(), textBuilder.CreateAttribute(), ERROR_LABEL, StringUtil.EscapeHtmlAttribute(easyUrl), StringUtil.EscapeHtmlAttribute(dialogUrl)); }
public static string CheckBoxList(this Tk5FieldInfoEx field, DataRow row, DataSet model, bool needId) { TkDebug.AssertArgumentNull(field, "field", null); TkDebug.AssertArgumentNull(model, "model", null); TkDebug.AssertNotNull(field.Decoder, "CheckBoxList控件需要配置Decoder", field); DataTable codeTable = model.Tables[field.Decoder.RegName]; StringBuilder options = new StringBuilder(); if (codeTable != null) { HtmlAttributeBuilder divBuilder = new HtmlAttributeBuilder(); AddNormalAttribute(field, divBuilder, field.NickName, needId, true); divBuilder.Add("data-control", "CheckBoxList"); HtmlAttributeBuilder builder = new HtmlAttributeBuilder(); //builder.Add("type", "radio"); //builder.Add("name", field.NickName); //builder.Add("class", "radio-center"); string value = row.GetString(field.NickName); QuoteStringList quoteValue = QuoteStringList.FromString(value); options.AppendFormat(ObjectUtil.SysCulture, "<div {0}>\r\n", divBuilder.CreateAttribute()); foreach (DataRow codeRow in codeTable.Rows) { builder.Clear(); string codeValue = codeRow.GetString("Value"); builder.Add("value", codeValue); if (quoteValue.Contains(codeValue)) builder.Add((HtmlAttribute)"checked"); options.AppendFormat(ObjectUtil.SysCulture, Html.CheckBoxListItem, builder.CreateAttribute(), codeRow.GetString("Name")); } options.Append("</div>").AppendLine(ERROR_LABEL); } return options.ToString(); }
public static string RadioGroup(this Tk5FieldInfoEx field, DataRow row, DataSet model, bool needId) { TkDebug.AssertArgumentNull(field, "field", null); TkDebug.AssertArgumentNull(model, "model", null); TkDebug.AssertNotNull(field.Decoder, "RadioGroup控件需要配置Decoder", field); DataTable codeTable = model.Tables[field.Decoder.RegName]; StringBuilder options = new StringBuilder(); if (codeTable != null) { HtmlAttributeBuilder divBuilder = new HtmlAttributeBuilder(); AddNormalAttribute(field, divBuilder, field.NickName, needId, true); divBuilder.Add("data-control", "RadioGroup"); HtmlAttributeBuilder builder = new HtmlAttributeBuilder(); builder.Add("type", "radio"); builder.Add("name", field.NickName); builder.Add("class", "radio-center"); string value = row.GetString(field.NickName); options.AppendFormat(ObjectUtil.SysCulture, "<div {0}>\r\n", divBuilder.CreateAttribute()); foreach (DataRow codeRow in codeTable.Rows) { string codeValue = codeRow.GetString("Value"); builder.Add("value", codeValue); options.AppendFormat(ObjectUtil.SysCulture, " <label class=\"checkbox-inline\"><input {0}{1}> {2}</label>\r\n", builder.CreateAttribute(), codeValue == value ? " checked" : string.Empty, codeRow.GetString("Name")); } options.Append("</div>").AppendLine(ERROR_LABEL); } return options.ToString(); }
private static string InternalCombo(Tk5FieldInfoEx field, string name, ObjectContainer container, CodeTableContainer codeTables, bool needId) { HtmlAttributeBuilder builder = new HtmlAttributeBuilder(); AddNormalAttribute(field, builder, name, needId); TkDebug.AssertNotNull(field.Decoder, "Combo控件需要配置Decoder", field); IEnumerable<IDecoderItem> codeTable = codeTables == null ? null : codeTables[field.Decoder.RegName]; StringBuilder options = new StringBuilder(); if (field.IsEmpty) { string emptyTitle; if (field.Extension != null && field.Extension.EmptyTitle != null) emptyTitle = field.Extension.EmptyTitle; else emptyTitle = string.Empty; options.Append("<option value=\"\">").Append(emptyTitle).AppendLine("</option>"); } string value = MemberValue(field.NickName, container.MainObject).ConvertToString(); if (codeTable != null) { foreach (IDecoderItem codeRow in codeTable) { string codeValue = codeRow.Value; options.AppendFormat(ObjectUtil.SysCulture, "<option value=\"{0}\"{1}>{2}</option>\r\n", codeValue, codeValue == value ? " selected" : string.Empty, codeRow.Name); } } return string.Format(ObjectUtil.SysCulture, "<select {0}>{1}</select>{2}", builder.CreateAttribute(), options, ERROR_LABEL); }