public static WindowBuilder CreateWindow(HtmlHelper helper, ActionButtonWindowParameters actionButtonWindowParameters, ActionParameters actionParameters) { var hlpr = helper.Telerik(); var winName = actionButtonWindowParameters.Name.ToUpper().EndsWith("WINDOW") ? actionButtonWindowParameters.Name : actionButtonWindowParameters.Name + "Window"; var wdw = hlpr.Window().Name(winName).Title(actionButtonWindowParameters.HeaderText); var controller = String.IsNullOrEmpty(actionParameters.Controller) ? helper.ViewContext.RouteData.Values["controller"] : actionParameters.Controller; wdw.HtmlAttributes(new Dictionary <string, object>() { { "data-action", UrlHelper.GenerateContentUrl("~/" + controller + "/" + actionParameters.Action, helper.ViewContext.HttpContext) }, { "data-values", HtmlHelperExtensions.SerializeToQueryString(actionParameters.RouteValues) } }); //.LoadContentFrom(parameters.Action,parameters.Controller,parameters.RouteValues) var loadXpos = (actionButtonWindowParameters.WidthInPx / 2) - 16; var loadYpos = (actionButtonWindowParameters.HeightInPx / 2) - 16; wdw.Content("<div class='window-loading t-loading' style='position:relative;top:" + loadYpos + "px;left:" + loadXpos + "px;width:16px;height:16px;'> </div><div class='window-contents' style='overflow:auto;'></div>") .Width(actionButtonWindowParameters.WidthInPx).Height(actionButtonWindowParameters.HeightInPx) .Resizable().Modal(true).Visible(false).Draggable(true); if (!String.IsNullOrEmpty(actionButtonWindowParameters.OnWindowCloseClientFunction)) { wdw.ClientEvents(ev => ev.OnClose(actionButtonWindowParameters.OnWindowCloseClientFunction)); } var wtb = actionButtonWindowParameters.TitleBarButtons; if ((wtb & ActionWindowTitleBarButtons.Close) == ActionWindowTitleBarButtons.Close) { wdw.Buttons(buttons => buttons.Close()); } if ((wtb & ActionWindowTitleBarButtons.Maximise) == ActionWindowTitleBarButtons.Maximise) { wdw.Buttons(buttons => buttons.Maximize()); } if ((wtb & ActionWindowTitleBarButtons.Refresh) == ActionWindowTitleBarButtons.Refresh) { wdw.Buttons(buttons => buttons.Refresh()); } if ((wtb & ActionWindowTitleBarButtons.None) == ActionWindowTitleBarButtons.None) { wdw.Buttons(buttons => buttons.Clear()); } return(wdw); }
public static MvcHtmlString ActionWindowButton(this HtmlHelper htmlHelper, ButtonParametersBase buttonParameters, ActionParameters actionParameters, ActionButtonWindowParameters actionButtonWindowParameters) { var str = string.Format("<a id='{0}' href='#' class='actionWindow'>REPLACE</a>", actionButtonWindowParameters.Name); str = buttonParameters.ButtonConstructor(str).ToString(); str += WindowBuilderHelper.CreateWindow(htmlHelper, actionButtonWindowParameters, actionParameters); return(new MvcHtmlString(str)); }