private static TagBuilder WrapInListItem(string text) { var li = new TagBuilder("li"); SetInnerText(li, text); return(li); }
public static System.Web.Mvc.MvcHtmlString HiddenForDateTime <TModel, TValue> (this System.Web.Mvc.HtmlHelper <TModel> htmlHelper, System.Linq.Expressions.Expression <System.Func <TModel, TValue> > expression, object value) where TModel : class { string strHtmlFieldName = System.Web.Mvc.ExpressionHelper.GetExpressionText(expression); string strFullName = htmlHelper.ViewContext.ViewData.TemplateInfo .GetFullHtmlFieldName(strHtmlFieldName); var strTag = new System.Web.Mvc.TagBuilder("input"); strTag.GenerateId(strFullName); strTag.Attributes.Add("type", "hidden"); strTag.Attributes.Add("name", strFullName); string strValue = string.Empty; if (value != null) { System.DateTime dtmValue = (System.DateTime)value; strValue = dtmValue.ToString("yyyy/MM/dd HH:mm:ss"); } strTag.Attributes.Add("value", strValue); return(new System.Web.Mvc.MvcHtmlString(strTag.ToString())); }
public static System.Web.Mvc.MvcHtmlString DtxLabel (this System.Web.Mvc.HtmlHelper html, string labelText, string expression = null, int column = 0, System.Collections.Generic.IDictionary <string, object> htmlAttributes = null) { System.Web.Mvc.TagBuilder label = new System.Web.Mvc.TagBuilder("label"); if (htmlAttributes != null) { label.MergeAttributes(htmlAttributes); } label.SetInnerText(labelText); label.AddCssClass("control-label"); if ((column >= 1) && (column <= 12)) { label.AddCssClass("col-sm-" + column); } string labelString = label.ToString(System.Web.Mvc.TagRenderMode.Normal); var result = System.Web.Mvc.MvcHtmlString.Create(labelString); return(result); }
private static TagBuilder PageCountAndLocationText(IPagedList list, PagedListRenderOptions options) { var text = new TagBuilder("a"); SetInnerText(text, string.Format(options.PageCountAndCurrentLocationFormat, list.PageNumber, list.PageCount)); return(WrapInListItem(text, options, "PagedList-pageCountAndLocation", "disabled")); }
private static TagBuilder ItemSliceAndTotalText(IPagedList list, PagedListRenderOptions options) { var text = new TagBuilder("a"); SetInnerText(text, string.Format(options.ItemSliceAndTotalFormat, list.FirstItemOnPage, list.LastItemOnPage, list.TotalItemCount)); return(WrapInListItem(text, options, "PagedList-pageCountAndLocation", "disabled")); }
private static TagBuilder Ellipses(PagedListRenderOptions options) { var a = new TagBuilder("a"); AppendHtml(a, options.EllipsesFormat); return(WrapInListItem(a, options, "PagedList-ellipses", "disabled")); }
internal static void SetInnerText(TagBuilder tagBuilder, string innerText) { #if MvcOld tagBuilder.SetInnerText(innerText); #else tagBuilder.InnerHtml.AppendHtml(innerText); #endif }
internal static void AppendHtml(TagBuilder tagBuilder, string innerHtml) { #if MvcOld tagBuilder.InnerHtml += innerHtml; #else tagBuilder.InnerHtml.AppendHtml(innerHtml); #endif }
internal static string TagBuilderToString(TagBuilder tagBuilder) { #if MvcOld return(tagBuilder.ToString()); #else using (var writer = new System.IO.StringWriter()) { tagBuilder.WriteTo(writer, System.Text.Encodings.Web.HtmlEncoder.Default); return(writer.ToString()); } #endif }
public static System.Web.Mvc.MvcHtmlString DtxLabelFor <TModel, TValue> (this System.Web.Mvc.HtmlHelper <TModel> html, System.Linq.Expressions.Expression <System.Func <TModel, TValue> > expression, int column = 0, bool ignoreFor = false, System.Collections.Generic.IDictionary <string, object> htmlAttributes = null) { System.Web.Mvc.ModelMetadata modelMetadata = System.Web.Mvc.ModelMetadata.FromLambdaExpression(expression, html.ViewData); string htmlFieldName = System.Web.Mvc.ExpressionHelper.GetExpressionText(expression); string labelText = modelMetadata.DisplayName ?? modelMetadata.PropertyName ?? htmlFieldName.Split('.').Last(); if (string.IsNullOrEmpty(labelText)) { return(System.Web.Mvc.MvcHtmlString.Empty); } System.Web.Mvc.TagBuilder label = new System.Web.Mvc.TagBuilder("label"); if (htmlAttributes != null) { label.MergeAttributes(htmlAttributes); } if (ignoreFor == false) { label.Attributes.Add("for", html.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldId(htmlFieldName)); } label.SetInnerText(labelText); label.AddCssClass("control-label"); if ((column >= 1) && (column <= 12)) { label.AddCssClass("col-sm-" + column); } string labelString = label.ToString(System.Web.Mvc.TagRenderMode.Normal); var result = System.Web.Mvc.MvcHtmlString.Create(labelString); return(result); }
internal static string TagBuilderToString(TagBuilder tagBuilder) { #if MvcOld return(tagBuilder.ToString()); #else using (var writer = new System.IO.StringWriter()) { tagBuilder.WriteTo(writer, Microsoft.Extensions.WebEncoders.HtmlEncoder.Default); return(writer.ToString()); } #endif }
private static TagBuilder First(IPagedList list, Func <int, string> generatePageUrl, PagedListRenderOptions options) { const int targetPageNumber = 1; var first = new TagBuilder("a"); AppendHtml(first, string.Format(options.LinkToFirstPageFormat, targetPageNumber)); if (list.IsFirstPage) { return(WrapInListItem(first, options, "PagedList-skipToFirst", "disabled")); } first.Attributes["href"] = generatePageUrl(targetPageNumber); return(WrapInListItem(first, options, "PagedList-skipToFirst")); }
private static TagBuilder Last(IPagedList list, Func <int, string> generatePageUrl, PagedListRenderOptions options) { var targetPageNumber = list.PageCount; var last = new TagBuilder("a"); AppendHtml(last, string.Format(options.LinkToLastPageFormat, targetPageNumber)); if (list.IsLastPage) { return(WrapInListItem(last, options, "PagedList-skipToLast", "disabled")); } last.Attributes["href"] = generatePageUrl(targetPageNumber); return(WrapInListItem(last, options, "PagedList-skipToLast")); }
private static TagBuilder WrapInListItem(TagBuilder inner, PagedListRenderOptions options, params string[] classes) { var li = new TagBuilder("li"); foreach (var @class in classes) { li.AddCssClass(@class); } if (options.FunctionToTransformEachPageLink != null) { return(options.FunctionToTransformEachPageLink(li, inner)); } AppendHtml(li, TagBuilderToString(inner)); return(li); }
public static System.Web.IHtmlString DtxReset (this System.Web.Mvc.HtmlHelper htmlHelper, string caption) { System.Web.Mvc.TagBuilder button = new System.Web.Mvc.TagBuilder("button"); button.SetInnerText(caption); button.AddCssClass("btn"); button.AddCssClass("btn-default"); button.Attributes.Add("type", "reset"); return(htmlHelper.Raw(button.ToString())); }
private static TagBuilder Previous(IPagedList list, Func <int, string> generatePageUrl, PagedListRenderOptions options) { var targetPageNumber = list.PageNumber - 1; var previous = new TagBuilder("a"); AppendHtml(previous, string.Format(options.LinkToPreviousPageFormat, targetPageNumber)); previous.Attributes["rel"] = "prev"; if (!list.HasPreviousPage) { return(WrapInListItem(previous, options, "PagedList-skipToPrevious", "disabled")); } previous.Attributes["href"] = generatePageUrl(targetPageNumber); return(WrapInListItem(previous, options, "PagedList-skipToPrevious")); }
private static TagBuilder Next(IPagedList list, Func <int, string> generatePageUrl, PagedListRenderOptions options) { var targetPageNumber = list.PageNumber + 1; var next = new TagBuilder("a"); AppendHtml(next, string.Format(options.LinkToNextPageFormat, targetPageNumber)); next.Attributes["rel"] = "next"; if (!list.HasNextPage) { return(WrapInListItem(next, options, "PagedList-skipToNext", "disabled")); } next.Attributes["href"] = generatePageUrl(targetPageNumber); return(WrapInListItem(next, options, "PagedList-skipToNext")); }
protected override void BuildControl(System.Web.Mvc.TagBuilder builder, CustomFieldDefinition field, string value, object htmlAttributes, System.Web.Mvc.ViewContext viewContext) { base.BuildControl(builder, field, value, htmlAttributes, viewContext); var html = new StringBuilder(); html.Append("<option value=\"\"></option>"); foreach (var item in field.SelectionItems) { html.AppendFormat("<option value=\"{0}\">{1}</option>", item.Value, item.Text) .AppendLine(); } builder.InnerHtml = html.ToString(); }
public static System.Web.IHtmlString DtxTextBox (this System.Web.Mvc.HtmlHelper htmlHelper, string name, object value = null) { System.Web.Mvc.TagBuilder input = new System.Web.Mvc.TagBuilder("input"); input.Attributes.Add("id", name); input.Attributes.Add("name", name); input.Attributes.Add("type", "text"); if (value != null) { input.Attributes.Add("value", value.ToString()); } return(htmlHelper.Raw(input.ToString())); }
public static System.Web.IHtmlString DtxSubmit (this System.Web.Mvc.HtmlHelper htmlHelper, string name, string caption) { System.Web.Mvc.TagBuilder button = new System.Web.Mvc.TagBuilder("button"); button.SetInnerText(caption); button.AddCssClass("btn"); button.AddCssClass("btn-primary"); button.Attributes.Add("id", name); button.Attributes.Add("name", name); button.Attributes.Add("type", "submit"); return(htmlHelper.Raw(button.ToString())); }
internal static string TagBuilderToString(TagBuilder tagBuilder, TagRenderMode renderMode) { #if MvcOld return(tagBuilder.ToString(renderMode)); #else var renderModeCopy = tagBuilder.TagRenderMode; tagBuilder.TagRenderMode = renderMode; string html; using (var writer = new System.IO.StringWriter()) { tagBuilder.WriteTo(writer, Microsoft.Extensions.WebEncoders.HtmlEncoder.Default); html = writer.ToString(); } tagBuilder.TagRenderMode = renderModeCopy; return(html); #endif }
public static System.Web.IHtmlString DtxLabel (this System.Web.Mvc.HtmlHelper htmlHelper, string expression, string labelText) { // Solution (1) System.Web.Mvc.TagBuilder label = new System.Web.Mvc.TagBuilder("label"); label.SetInnerText(labelText); label.Attributes.Add("for", expression); return(htmlHelper.Raw(label.ToString())); // /Solution (1) // Solution (2) //System.Web.Mvc.TagBuilder label = // new System.Web.Mvc.TagBuilder("label"); //label.SetInnerText(labelText); //label.Attributes.Add("for", expression); //System.Web.Mvc.TagBuilder div = // new System.Web.Mvc.TagBuilder("div"); //div.AddCssClass("caption"); //div.InnerHtml = label.ToString(); //return (htmlHelper.Raw(div.ToString())); // /Solution (2) // Solution (3) //string label = // htmlHelper.Label(expression: expression, labelText: labelText) // .ToHtmlString(); //System.Web.Mvc.TagBuilder div = // new System.Web.Mvc.TagBuilder("div"); //div.InnerHtml = label; //div.AddCssClass("caption"); //return (htmlHelper.Raw(div.ToString())); // /Solution (3) }
public static string Label(string expression, string labelText) { // Solution (1) //string result = // $"<label for='{ expression }'>{ labelText }</label>"; //return (result); // /Solution (1) // Solution (2) //string result = // $"<div class='caption'><label for='{ expression }'>{ labelText }</label></div>"; //return (result); // /Solution (2) // Solution (3) //System.Web.Mvc.TagBuilder label = // new System.Web.Mvc.TagBuilder("label"); //label.SetInnerText(labelText); //label.Attributes.Add("for", expression); //return (label.ToString()); // /Solution (3) // Solution (4) System.Web.Mvc.TagBuilder label = new System.Web.Mvc.TagBuilder("label"); label.SetInnerText(labelText); label.Attributes.Add("for", expression); System.Web.Mvc.TagBuilder div = new System.Web.Mvc.TagBuilder("div"); div.AddCssClass("caption"); div.InnerHtml = label.ToString(); return(div.ToString()); // /Solution (4) }
///<summary> /// Displays a configurable "Go To Page:" form for instances of PagedList. ///</summary> ///<param name="html">This method is meant to hook off HtmlHelper as an extension method.</param> ///<param name="list">The PagedList to use as the data source.</param> ///<param name="formAction">The URL this form should submit the GET request to.</param> ///<param name="options">Formatting options.</param> ///<returns>Outputs the "Go To Page:" form HTML.</returns> public static HtmlString PagedListGoToPageForm(this IHtmlHelper html, IPagedList list, string formAction, GoToFormRenderOptions options) { var form = new TagBuilder("form"); form.AddCssClass("PagedList-goToPage"); form.Attributes.Add("action", formAction); form.Attributes.Add("method", "get"); var fieldset = new TagBuilder("fieldset"); var label = new TagBuilder("label"); label.Attributes.Add("for", options.InputFieldName); SetInnerText(label, options.LabelFormat); var input = new TagBuilder("input"); input.Attributes.Add("type", options.InputFieldType); input.Attributes.Add("name", options.InputFieldName); input.Attributes.Add("value", list.PageNumber.ToString()); var submit = new TagBuilder("input"); submit.Attributes.Add("type", "submit"); submit.Attributes.Add("value", options.SubmitButtonFormat); AppendHtml(fieldset, TagBuilderToString(label)); AppendHtml(fieldset, TagBuilderToString(input, TagRenderMode.SelfClosing)); AppendHtml(fieldset, TagBuilderToString(submit, TagRenderMode.SelfClosing)); AppendHtml(form, TagBuilderToString(fieldset)); return(new HtmlString(TagBuilderToString(form))); }
protected override void BuildControl(System.Web.Mvc.TagBuilder builder, Products.CustomFieldDefinition field, string value, object htmlAttributes, System.Web.Mvc.ViewContext viewContext) { builder.MergeAttribute("data-toggle", "datepicker"); base.BuildControl(builder, field, value, htmlAttributes, viewContext); }
private void InitializeBeaconViewRendering() { BarcodeControllerName = Rendering.Parameters[MobileFieldNames.BarcodeControllerViewRenderingParameters.BarcodeControllerName]; BarcodeControllerAction = Rendering.Parameters[MobileFieldNames.BarcodeControllerViewRenderingParameters.BarcodeControllerAction]; var linkFieldNameParameter = Rendering.Parameters[MobileFieldNames.BarcodeViewRenderingParameters.LinkFieldName] ?? null; var generalLinkParameter = Rendering.Parameters[MobileFieldNames.BarcodeViewRenderingParameters.GeneralLink] ?? null; BarcodeFormatParameter = Rendering.Parameters[MobileFieldNames.BarcodeViewRenderingParameters.BarcodeFormat] ?? defaultBarcodeFormat; ImageFormatParameter = Rendering.Parameters[MobileFieldNames.BarcodeViewRenderingParameters.ImageFormat] ?? defaultImageFormat; int w = defaultWidthPx; int h = defaultHeightPx; int.TryParse(Rendering.Parameters[MobileFieldNames.BarcodeViewRenderingParameters.WidthPx], out w); int.TryParse(Rendering.Parameters[MobileFieldNames.BarcodeViewRenderingParameters.HeightPx], out h); ZXing.BarcodeFormat barcodeFormat = ZXing.BarcodeFormat.QR_CODE; ImageFormat imageFormat = ImageFormat.Png; barcodeFormat = (ZXing.BarcodeFormat)Enum.Parse(typeof(ZXing.BarcodeFormat), BarcodeFormatParameter.Trim()); switch (ImageFormatParameter.ToLower()) { case "svg": break; case "bmp": imageFormat = ImageFormat.Bmp; break; case "emf": imageFormat = ImageFormat.Emf; break; case "gif": imageFormat = ImageFormat.Gif; break; case "icon": imageFormat = ImageFormat.Icon; break; case "jpeg": case "jpg": imageFormat = ImageFormat.Jpeg; break; case "png": imageFormat = ImageFormat.Png; break; case "tiff": imageFormat = ImageFormat.Tiff; break; case "wmf": imageFormat = ImageFormat.Wmf; break; default: throw new ArgumentException("Image format isn't supported", ImageFormatParameter.ToLower()); } var buttonLink = (string)null; if (!string.IsNullOrEmpty(BarcodeControllerName) && !string.IsNullOrEmpty(BarcodeControllerAction)) { var r = new Sitecore.Mvc.Controllers.ControllerRunner( BarcodeControllerName, BarcodeControllerAction); buttonLink = r.Execute(); // formFieldControllerValue = Html.Partial(Model.FormFieldValueControllerAction, Model.FormFieldValueControllerName); } if (string.IsNullOrEmpty(buttonLink)) { buttonLink = string.Empty; } if (string.IsNullOrEmpty(buttonLink)) { EmbeddedBarcodeImage = new HtmlString("Badge Error"); SvgBarcodeImage = new HtmlString("Badge Error"); return; } BarcodeModel = new BarcodeModel(buttonLink, imageFormat, barcodeFormat, w, h); System.Web.Mvc.TagBuilder tagBuilder = new System.Web.Mvc.TagBuilder("img"); // tagBuilder.MergeAttributes<string, object>(tagParameters); string base64ImageString = string.Concat("data:", GetMimeType(imageFormat), ";base64,", Convert.ToBase64String(BarcodeModel.BarcodeImageEncoded)); tagBuilder.Attributes.Add(new KeyValuePair <string, string>("src", base64ImageString)); EmbeddedBarcodeImage = new HtmlString(tagBuilder.ToString(System.Web.Mvc.TagRenderMode.SelfClosing)); SvgBarcodeImage = new HtmlString(BarcodeModel.BarcodeImageSvg); }
///<summary> /// Displays a configurable paging control for instances of PagedList. ///</summary> ///<param name = "html">This method is meant to hook off HtmlHelper as an extension method.</param> ///<param name = "list">The PagedList to use as the data source.</param> ///<param name = "generatePageUrl">A function that takes the page number of the desired page and returns a URL-string that will load that page.</param> ///<param name = "options">Formatting options.</param> ///<returns>Outputs the paging control HTML.</returns> public static HtmlString PagedListPager(this IHtmlHelper html, IPagedList list, Func <int, string> generatePageUrl, PagedListRenderOptions options) { if (options.Display == PagedListDisplayMode.Never || (options.Display == PagedListDisplayMode.IfNeeded && list.PageCount <= 1)) { return(null); } var listItemLinks = new List <TagBuilder>(); //calculate start and end of range of page numbers var firstPageToDisplay = 1; var lastPageToDisplay = list.PageCount; var pageNumbersToDisplay = lastPageToDisplay; if (options.MaximumPageNumbersToDisplay.HasValue && list.PageCount > options.MaximumPageNumbersToDisplay) { // cannot fit all pages into pager var maxPageNumbersToDisplay = options.MaximumPageNumbersToDisplay.Value; firstPageToDisplay = list.PageNumber - maxPageNumbersToDisplay / 2; if (firstPageToDisplay < 1) { firstPageToDisplay = 1; } pageNumbersToDisplay = maxPageNumbersToDisplay; lastPageToDisplay = firstPageToDisplay + pageNumbersToDisplay - 1; if (lastPageToDisplay > list.PageCount) { firstPageToDisplay = list.PageCount - maxPageNumbersToDisplay + 1; } } //first if (options.DisplayLinkToFirstPage == PagedListDisplayMode.Always || (options.DisplayLinkToFirstPage == PagedListDisplayMode.IfNeeded && firstPageToDisplay > 1)) { listItemLinks.Add(First(list, generatePageUrl, options)); } //previous if (options.DisplayLinkToPreviousPage == PagedListDisplayMode.Always || (options.DisplayLinkToPreviousPage == PagedListDisplayMode.IfNeeded && !list.IsFirstPage)) { listItemLinks.Add(Previous(list, generatePageUrl, options)); } //text if (options.DisplayPageCountAndCurrentLocation) { listItemLinks.Add(PageCountAndLocationText(list, options)); } //text if (options.DisplayItemSliceAndTotal) { listItemLinks.Add(ItemSliceAndTotalText(list, options)); } //page if (options.DisplayLinkToIndividualPages) { //if there are previous page numbers not displayed, show an ellipsis if (options.DisplayEllipsesWhenNotShowingAllPageNumbers && firstPageToDisplay > 1) { listItemLinks.Add(Ellipses(options)); } foreach (var i in Enumerable.Range(firstPageToDisplay, pageNumbersToDisplay)) { //show delimiter between page numbers if (i > firstPageToDisplay && !string.IsNullOrWhiteSpace(options.DelimiterBetweenPageNumbers)) { listItemLinks.Add(WrapInListItem(options.DelimiterBetweenPageNumbers)); } //show page number link listItemLinks.Add(Page(i, list, generatePageUrl, options)); } //if there are subsequent page numbers not displayed, show an ellipsis if (options.DisplayEllipsesWhenNotShowingAllPageNumbers && (firstPageToDisplay + pageNumbersToDisplay - 1) < list.PageCount) { listItemLinks.Add(Ellipses(options)); } } //next if (options.DisplayLinkToNextPage == PagedListDisplayMode.Always || (options.DisplayLinkToNextPage == PagedListDisplayMode.IfNeeded && !list.IsLastPage)) { listItemLinks.Add(Next(list, generatePageUrl, options)); } //last if (options.DisplayLinkToLastPage == PagedListDisplayMode.Always || (options.DisplayLinkToLastPage == PagedListDisplayMode.IfNeeded && lastPageToDisplay < list.PageCount)) { listItemLinks.Add(Last(list, generatePageUrl, options)); } if (listItemLinks.Any()) { //append class to first item in list? if (!string.IsNullOrWhiteSpace(options.ClassToApplyToFirstListItemInPager)) { listItemLinks.First().AddCssClass(options.ClassToApplyToFirstListItemInPager); } //append class to last item in list? if (!string.IsNullOrWhiteSpace(options.ClassToApplyToLastListItemInPager)) { listItemLinks.Last().AddCssClass(options.ClassToApplyToLastListItemInPager); } //append classes to all list item links foreach (var li in listItemLinks) { foreach (var c in options.LiElementClasses ?? Enumerable.Empty <string>()) { li.AddCssClass(c); } } } //collapse all of the list items into one big string var listItemLinksString = listItemLinks.Aggregate( new StringBuilder(), (sb, listItem) => sb.Append(TagBuilderToString(listItem)), sb => sb.ToString() ); var ul = new TagBuilder("ul"); AppendHtml(ul, listItemLinksString); foreach (var c in options.UlElementClasses ?? Enumerable.Empty <string>()) { ul.AddCssClass(c); } var outerDiv = new TagBuilder("div"); foreach (var c in options.ContainerDivClasses ?? Enumerable.Empty <string>()) { outerDiv.AddCssClass(c); } AppendHtml(outerDiv, TagBuilderToString(ul)); return(new HtmlString(TagBuilderToString(outerDiv))); }
public TagBuilder(string tagName) { _tagBuilder = new System.Web.Mvc.TagBuilder(tagName); Attributes = _tagBuilder.Attributes; }
private void InitializeBeaconViewRendering() { DisplayItem = Rendering.Item; var linkFieldNameParameter = Rendering.Parameters[MobileFieldNames.BarcodeViewRenderingParameters.LinkFieldName] ?? null; var generalLinkParameter = Rendering.Parameters[MobileFieldNames.BarcodeViewRenderingParameters.GeneralLink] ?? null; BarcodeFormatParameter = Rendering.Parameters[MobileFieldNames.BarcodeViewRenderingParameters.BarcodeFormat] ?? defaultBarcodeFormat; ImageFormatParameter = Rendering.Parameters[MobileFieldNames.BarcodeViewRenderingParameters.ImageFormat] ?? defaultImageFormat; int w = defaultWidthPx; int h = defaultHeightPx; int.TryParse(Rendering.Parameters[MobileFieldNames.BarcodeViewRenderingParameters.WidthPx], out w); int.TryParse(Rendering.Parameters[MobileFieldNames.BarcodeViewRenderingParameters.HeightPx], out h); ZXing.BarcodeFormat barcodeFormat = ZXing.BarcodeFormat.QR_CODE; ImageFormat imageFormat = ImageFormat.Png; barcodeFormat = (ZXing.BarcodeFormat)Enum.Parse(typeof(ZXing.BarcodeFormat), BarcodeFormatParameter.Trim()); switch (ImageFormatParameter.ToLower()) { case "bmp": imageFormat = ImageFormat.Bmp; break; case "emf": imageFormat = ImageFormat.Emf; break; case "gif": imageFormat = ImageFormat.Gif; break; case "icon": imageFormat = ImageFormat.Icon; break; case "jpeg": case "jpg": imageFormat = ImageFormat.Jpeg; break; case "png": imageFormat = ImageFormat.Png; break; case "tiff": imageFormat = ImageFormat.Tiff; break; case "wmf": imageFormat = ImageFormat.Wmf; break; case "svg": break; default: throw new ArgumentException("Image format isn't supported", ImageFormatParameter.ToLower()); } var buttonText = (string)null; var buttonLink = (string)null; var buttonTarget = (string)null; if (!string.IsNullOrEmpty(generalLinkParameter)) { var generalLinkXml = HttpUtility.HtmlDecode(generalLinkParameter); var renderingParameterTemplateField = Rendering.RenderingItem.InnerItem.Fields[MobileFieldNames.ViewRenderingFields.ParametersTemplate]; var renderingParameterTemplateLookupField = new Sitecore.Data.Fields.LookupField(renderingParameterTemplateField); var renderingParameterTemplateItem = new Sitecore.Data.Items.TemplateItem(renderingParameterTemplateLookupField.TargetItem); var standardValuesGeneralLinkField = renderingParameterTemplateItem.StandardValues.Fields[MobileFieldNames.BarcodeViewRenderingParameters.GeneralLink]; var generalLinkField = new Sitecore.Data.Fields.LinkField(standardValuesGeneralLinkField, generalLinkXml); buttonText = generalLinkField.Text; buttonTarget = !string.IsNullOrEmpty(generalLinkField.Target) ? generalLinkField.Target : null; if (!string.IsNullOrEmpty(generalLinkField.Anchor)) { buttonLink = string.Format("#{0}", generalLinkField.Anchor); } else { buttonLink = generalLinkField.Url; } } if (string.IsNullOrEmpty(buttonLink) && !string.IsNullOrEmpty(linkFieldNameParameter) && DisplayItem != null) { var itemField = DisplayItem.Fields[linkFieldNameParameter]; if (itemField == null) { return; } var fieldItem = DisplayItem.Database.GetItem(itemField.ID); if (fieldItem == null) { return; } var linkField = new Sitecore.Data.Fields.LinkField(itemField); if (linkField.TargetItem == null) { EmbeddedBarcodeImage = new HtmlString("Undefined barcode link field target item"); SvgBarcodeImage = new HtmlString("Undefined barcode link field target item"); return; } buttonLink = DisplayItem.GetRoutePathInfo( new Sitecore.Links.UrlOptions() { AlwaysIncludeServerUrl = true }); } if (string.IsNullOrEmpty(buttonLink) && DisplayItem != null) { buttonLink = DisplayItem.GetRoutePathInfo( new Sitecore.Links.UrlOptions() { AlwaysIncludeServerUrl = true }); } if (string.IsNullOrEmpty(buttonLink)) { EmbeddedBarcodeImage = new HtmlString("Missing barcode link"); SvgBarcodeImage = new HtmlString("Missing barcode link"); return; } BarcodeModel = new BarcodeModel(buttonLink, imageFormat, barcodeFormat, w, h); System.Web.Mvc.TagBuilder tagBuilder = new System.Web.Mvc.TagBuilder("img"); // tagBuilder.MergeAttributes<string, object>(tagParameters); string base64ImageString = string.Concat("data:", GetMimeType(imageFormat), ";base64,", Convert.ToBase64String(BarcodeModel.BarcodeImageEncoded)); tagBuilder.Attributes.Add(new KeyValuePair <string, string>("src", base64ImageString)); EmbeddedBarcodeImage = new HtmlString(tagBuilder.ToString()); SvgBarcodeImage = new HtmlString(BarcodeModel.BarcodeImageSvg); }
protected override void BuildControl(System.Web.Mvc.TagBuilder builder, CustomFieldDefinition field, string value, object htmlAttributes, System.Web.Mvc.ViewContext viewContext) { base.BuildControl(builder, field, value, htmlAttributes, viewContext); builder.InnerHtml = value; }