using System.Collections.Generic; using System.Linq; using System.Text; using System.Web; using System.Web.Mvc; using Kendo.Mvc.UI; using Kreta.Web.Helpers.TabStrip; namespace Kreta.Web.Helpers { public static class TabStripExrtensions { public static Kendo.Mvc.UI.Fluent.TabStripBuilder KretaTabStrip(this HtmlHelper helper, string id, string showEventFunction = "") { var tab = helper.Kendo().TabStrip().Name(id); if (!string.IsNullOrWhiteSpace(showEventFunction)) { tab.Events(events => events.Show(showEventFunction)); } return tab; } public static MvcHtmlString KretaTabStripAjax(this HtmlHelper helper, string id, List list, string activateEvent = null, string selectEvent = null) { StringBuilder sb = new StringBuilder(); if (list != null) { sb.Append("
"); sb.Append("
"); sb.Append("
"); sb.Append(""); var activateFunction = string.IsNullOrWhiteSpace(activateEvent) ? string.Empty : activateEvent + "(e);"; var selectFunction = string.IsNullOrWhiteSpace(selectEvent) ? string.Empty : selectEvent + "(e);"; sb.AppendFormat(@" "); } return new MvcHtmlString(sb.ToString()); } public static HtmlString JQueryTabStrip(this HtmlHelper helper, string tabId, List tabItems) { StringBuilder scriptSb = new StringBuilder(); StringBuilder sb = new StringBuilder(); scriptSb.Append(""); sb.Append("
    "); int cnt = 1; foreach (var item in tabItems) { if (!string.IsNullOrWhiteSpace(item.Url)) { sb.Append(string.Format("
  • {1}
  • ", item.Url, item.Title)); } else { sb.Append(string.Format("
  • {2}
  • ", tabId, cnt, item.Title)); } cnt++; } sb.Append("
"); int cnt2 = 1; foreach (var item in tabItems) { if (!string.IsNullOrWhiteSpace(item.Content)) { sb.Append(string.Format("
", tabId, cnt2)); sb.Append(item.Content); sb.Append("
"); } cnt2++; } sb.Append("
"); return new HtmlString(string.Format("{0} {1}", scriptSb, sb)); } public static MvcHtmlString RenderOnModal(this Kendo.Mvc.UI.Fluent.TabStripBuilder helper) { StringBuilder sb = new StringBuilder(); var id = helper.ToComponent().Id; sb.Append("
"); sb.Append("
"); sb.Append(helper.ToHtmlString()); // §§HOWTO: "Hekkelés a design miatt" (KretaTabStripNew-ból jött...) var appendix = string.Format(@" ", id); sb.Append(appendix); return new MvcHtmlString(sb.ToString()); } } }