private static MvcHtmlString InternalStripElement <T>(this HtmlHelper helper, TypeElementContext <T> itemTC, EntityStrip entityStrip) { HtmlStringBuilder sb = new HtmlStringBuilder(); if (entityStrip.IsVisible == null || entityStrip.IsVisible(itemTC)) { using (sb.SurroundLine(new HtmlTag("li").IdName(itemTC.Compose(EntityStripKeys.StripElement)).Class("sf-strip-element input-group"))) { var lite = (itemTC.UntypedValue as Lite <IEntity>) ?? (itemTC.UntypedValue as IEntity)?.Let(i => i.ToLite(i.IsNew)); if (lite != null && (entityStrip.Navigate || entityStrip.View)) { var dic = new Dictionary <string, object> { { "onclick", entityStrip.SFControlThen("viewItem_click(\"" + itemTC.Prefix + "\", event)") } }; sb.AddLine( helper.Href(itemTC.Compose(EntityBaseKeys.Link), lite.ToString(), "#", lite.ToString(), "sf-entitStrip-link", dic)); } else { sb.AddLine( helper.Span(itemTC.Compose(EntityBaseKeys.Link), itemTC.UntypedValue.ToString() ?? " ", "sf-entitStrip-link")); } sb.AddLine(EntityBaseHelper.WriteIndex(helper, itemTC)); sb.AddLine(helper.HiddenRuntimeInfo(itemTC)); if (EntityBaseHelper.EmbeddedOrNew((Modifiable)(object)itemTC.Value)) { sb.AddLine(EntityBaseHelper.RenderPopup(helper, itemTC, RenderPopupMode.PopupInDiv, entityStrip)); } using (sb.SurroundLine(new HtmlTag("span"))) { if (entityStrip.Move) { sb.AddLine(EntityButtonHelper.MoveUpItem(helper, itemTC, entityStrip, btn: false, elementType: "a", isVertical: entityStrip.Vertical)); sb.AddLine(EntityButtonHelper.MoveDownItem(helper, itemTC, entityStrip, btn: false, elementType: "a", isVertical: entityStrip.Vertical)); } if (entityStrip.View) { sb.AddLine(EntityButtonHelper.ViewItem(helper, itemTC, entityStrip, btn: false)); } if (entityStrip.Remove) { sb.AddLine(EntityButtonHelper.RemoveItem(helper, itemTC, entityStrip, btn: false)); } } } } else { using (sb.SurroundLine(new HtmlTag("li").IdName(itemTC.Compose(EntityStripKeys.StripElement)).Class("sf-strip-element input-group hidden"))) { sb.AddLine(EntityBaseHelper.WriteIndex(helper, itemTC)); sb.AddLine(helper.HiddenRuntimeInfo(itemTC)); } } return(sb.ToHtml()); }