/// <summary> /// 处理资源的请求 /// </summary> /// <param name="context">Http请求上下文</param> public void ProcessRequest(HttpContext context) { string type = String.Empty; string typeValue = String.Empty; string extjsBasePath = GlobalConfig.GetExtjsBasePath(); //resName = "FineUI."; if (!String.IsNullOrEmpty(typeValue = context.Request.QueryString["icon"])) { type = "icon"; } //else if (!String.IsNullOrEmpty(typeValue = context.Request.QueryString["js"])) //{ // type = "js"; // //resName += "js." + typeValue; //} //else if (!String.IsNullOrEmpty(typeValue = context.Request.QueryString["lang"])) //{ // type = "lang"; // //resName += "js.lang." + typeValue; //} else if (!String.IsNullOrEmpty(typeValue = context.Request.QueryString["theme"])) { // res.axd?theme=default.grid.refresh.gif type = "theme"; //resName += "res.theme." + typeValue; } //else if (!String.IsNullOrEmpty(typeValue = context.Request.QueryString["css"])) //{ // type = "css"; // //resName += "res.css." + typeValue; //} else if (!String.IsNullOrEmpty(typeValue = context.Request.QueryString["img"])) { type = "img"; //resName += "res.img." + typeValue; } else { context.Response.Write("Not supported!"); return; } //byte[] binary; switch (type) { case "icon": if (!typeValue.EndsWith(".png") && !typeValue.EndsWith(".gif")) { typeValue = IconHelper.GetName((Icon)Enum.Parse(typeof(Icon), typeValue)); } //resName += "res.icon." + typeValue; string serverPath = String.Format("{0}/{1}", GlobalConfig.GetIconBasePath(), typeValue); context.Response.WriteFile(context.Server.MapPath(serverPath)); context.Response.ContentType = "image/" + GetImageFormat(typeValue); break; //case "js": // context.Response.Write(ResourceHelper.GetResourceContent(resName)); // context.Response.ContentType = "text/javascript"; //case "lang": // context.Response.Write(ResourceHelper.GetResourceContent(resName)); // context.Response.ContentType = "text/javascript"; // break; //case "css": // context.Response.Write(ResourceHelper.GetResourceContent(resName)); // context.Response.ContentType = "text/css"; // break; case "theme": string themePath = ""; string themeImageFormat = ""; int lastDotIndex = typeValue.LastIndexOf("."); if (lastDotIndex >= 0) { themePath = typeValue.Substring(0, lastDotIndex).Replace('.', '/'); themeImageFormat = typeValue.Substring(lastDotIndex + 1); } context.Response.WriteFile(context.Server.MapPath(String.Format("{0}/res/images/{1}.{2}", extjsBasePath, themePath, themeImageFormat))); context.Response.ContentType = "image/" + GetImageFormat(typeValue); break; case "img": //binary = ResourceHelper.GetResourceContentAsBinary(resName); //context.Response.OutputStream.Write(binary, 0, binary.Length); //context.Response.ContentType = "image/" + GetImageFormat(resName); context.Response.WriteFile(context.Server.MapPath(String.Format("{0}/res/images/{1}", extjsBasePath, typeValue))); context.Response.ContentType = "image/" + GetImageFormat(typeValue); break; } // 缓存一年,只能通过改变 URL 来强制更新缓存 context.Response.Cache.SetExpires(DateTime.Now.AddYears(1)); context.Response.Cache.SetCacheability(HttpCacheability.Public); }
internal override string GetColumnValue(GridRow row) { //string result = String.Empty; #region DataTextField string text = String.Empty; if (!String.IsNullOrEmpty(DataTextField)) { object value = row.GetPropertyValue(DataTextField); if (value != null) { if (!String.IsNullOrEmpty(DataTextFormatString)) { text = String.Format(DataTextFormatString, value); if (HtmlEncodeFormatString) { text = HttpUtility.HtmlEncode(text); } } else { text = value.ToString(); if (HtmlEncode) { text = HttpUtility.HtmlEncode(text); } } } } else { text = Text; } #endregion HtmlNodeBuilder nb; #region Enabled nb = new HtmlNodeBuilder("a"); if (Enabled) { nb.SetProperty("href", "javascript:;"); // click string paramStr = String.Format("Command${0}${1}${2}${3}", row.RowIndex, ColumnIndex, CommandName.Replace("'", "\""), CommandArgument.Replace("'", "\"")); string postBackReference = Grid.GetPostBackEventReference(paramStr); string clientScript = Button.ResolveClientScript(ValidateForms, ValidateTarget, ValidateMessageBox, EnablePostBack, postBackReference, ConfirmText, ConfirmTitle, ConfirmIcon, ConfirmTarget, OnClientClick, String.Empty); //clientScript = JsHelper.GetDeferScript(clientScript, 0) + "F.stopEvent();"; //clientScript = clientScript + "F.stop();"; nb.SetProperty("onclick", clientScript); //result = nb.ToString(); } else { nb.SetProperty("class", "x-item-disabled"); nb.SetProperty("disabled", "disabled"); //nb = new HtmlNodeBuilder("span"); //nb.SetProperty("class", "gray"); //nb.InnerProperty = text; //result = String.Format("<span class=\"gray\">{0}</span>", text); } nb.InnerProperty = text; #endregion string tooltip = GetTooltipString(row); #region Icon IconUrl string resolvedIconUrl = IconHelper.GetResolvedIconUrl(Icon, IconUrl); if (!String.IsNullOrEmpty(resolvedIconUrl)) { nb.InnerProperty = String.Format("<img src=\"{0}\" {1} />", resolvedIconUrl, tooltip) + nb.InnerProperty; } #endregion //string result = nb.ToString(); //#region Tooltip //if (!String.IsNullOrEmpty(tooltip)) //{ // if (result.StartsWith("<a ")) // { // result = result.ToString().Insert(2, tooltip); // } // else if (result.StartsWith("<span ")) // { // result = result.ToString().Insert(5, tooltip); // } //} //#endregion //return result; string result = nb.ToString(); if (!String.IsNullOrEmpty(tooltip)) { result = result.ToString().Insert("<a".Length, tooltip); } return(result); }
internal override string GetColumnValue(GridRow row) { HtmlNodeBuilder nb = new HtmlNodeBuilder("a"); #region DataTextField if (!String.IsNullOrEmpty(DataTextField)) { object value = row.GetPropertyValue(DataTextField); //if (!String.IsNullOrEmpty(DataTextFormatString)) //{ // nb.InnerProperty = String.Format(DataTextFormatString, value); //} //else //{ // nb.InnerProperty = value.ToString(); //} string text = String.Empty; if (!String.IsNullOrEmpty(DataTextFormatString)) { text = String.Format(DataTextFormatString, value); if (HtmlEncodeFormatString) { text = HttpUtility.HtmlEncode(text); } } else { text = value.ToString(); if (HtmlEncode) { text = HttpUtility.HtmlEncode(text); } } nb.InnerProperty = text; } else { nb.InnerProperty = Text; } #endregion if (Enabled) { string url = "#"; #region DataIFrameUrlFields string hrefOriginal = String.Empty; if (!String.IsNullOrEmpty(DataIFrameUrlFields)) { string[] fields = DataIFrameUrlFields.Trim().TrimEnd(',').Split(','); List <object> fieldValues = new List <object>(); foreach (string field in fields) { if (!String.IsNullOrEmpty(field)) { //fieldValues.Add(row.GetPropertyValue(field)); string fieldValue = row.GetPropertyValue(field).ToString(); if (UrlEncode) { fieldValue = HttpUtility.UrlEncode(fieldValue); } fieldValues.Add(fieldValue); } } if (!String.IsNullOrEmpty(DataIFrameUrlFormatString)) { hrefOriginal = String.Format(DataIFrameUrlFormatString, fieldValues.ToArray()); } else { if (fieldValues.Count > 0) { hrefOriginal = fieldValues[0].ToString(); } } } else { hrefOriginal = IFrameUrl; } url = Grid.ResolveUrl(hrefOriginal); #endregion string title = String.Empty; #region DataTextField if (!String.IsNullOrEmpty(DataWindowTitleField)) { object value = row.GetPropertyValue(DataWindowTitleField); if (!String.IsNullOrEmpty(DataWindowTitleFormatString)) { title = String.Format(DataWindowTitleFormatString, value); } else { title = value.ToString(); } } else { title = Title; } #endregion #region WindowID if (!String.IsNullOrEmpty(WindowID)) { Window window = ControlUtil.FindControl(Grid.Page, WindowID) as Window; if (window != null) { nb.SetProperty("href", "javascript:;"); nb.SetProperty("onclick", String.Format("javascript:{0}", window.GetShowReference(url, title))); //nb.SetProperty("href", String.Format("javascript:X.{0}_show('{1}','{2}');", window.ClientID, url, title.Replace("'", "\""))); } } #endregion } else { nb.SetProperty("class", "x-item-disabled"); nb.SetProperty("disabled", "disabled"); } string tooltip = GetTooltipString(row); #region Icon IconUrl string resolvedIconUrl = IconHelper.GetResolvedIconUrl(Icon, IconUrl); if (!String.IsNullOrEmpty(resolvedIconUrl)) { nb.InnerProperty = String.Format("<img src=\"{0}\" {1} />", resolvedIconUrl, tooltip) + nb.InnerProperty; } #endregion //string result2 = nb.ToString(); //#region Tooltip //if (!String.IsNullOrEmpty(tooltip)) //{ // result2 = result2.ToString().Insert(2, tooltip); //} //#endregion //return result2; string result = nb.ToString(); if (!String.IsNullOrEmpty(tooltip)) { result = result.ToString().Insert("<a".Length, tooltip); } return(result); }
/// <summary> /// 渲染 HTML 之前调用(页面第一次加载或者普通回发) /// </summary> protected override void OnFirstPreRender() { base.OnFirstPreRender(); //ResourceManager.Instance.AddJavaScriptComponent("button"); //if (Menu.Items.Count > 0) //{ // ResourceManager.Instance.AddJavaScriptComponent("menu"); //} #region Properties if (TabIndex != null) { OB.AddProperty("tabIndex", TabIndex); } if (!String.IsNullOrEmpty(ToolTip)) { OB.AddProperty("tooltip", ToolTip); OB.AddProperty("tooltipType", ToolTipTypeName.GetName(ToolTipType)); } OB.AddProperty("text", Text); if (EnablePress) { OB.AddProperty("enableToggle", EnablePress); OB.AddProperty("pressed", Pressed); //hiddenFieldsScript += GetSetHiddenFieldValueScript(PressedHiddenFieldID, Pressed.ToString().ToLower()); //string toggleScript = String.Format("function(btn,pressed){{F.util.setHiddenFieldValue('{0}',pressed);}}", PressedHiddenFieldID); //OB.Listeners.AddProperty(OptionName.Toggle, toggleScript, true); } //if (Type != ButtonType.Button) //{ // OB.AddProperty("type", ButtonTypeName.GetName(Type)); //} if (Size != ButtonSize.Small) { OB.AddProperty("scale", ButtonSizeName.GetName(Size)); } #endregion #region Icon IconUrl string resolvedIconUrl = IconHelper.GetResolvedIconUrl(Icon, IconUrl); if (!String.IsNullOrEmpty(resolvedIconUrl)) { // 不需要先删除原来的属性,因为在AddProperty内部已经有这个逻辑了 OB.AddProperty("cls", CssClass + " x-btn-text-icon"); OB.AddProperty("icon", resolvedIconUrl); if (IconAlign != IconAlign.Left) { OB.AddProperty("iconAlign", IconAlignHelper.GetName(IconAlign)); } } #endregion #region Click string clickScript = GetClickScript(); if (!String.IsNullOrEmpty(clickScript)) { OB.AddProperty("handler", JsHelper.GetFunction(clickScript), true); } #endregion #region oldcode //string clickScriptFunction = GetClickScriptFunction(); //if (AjaxPropertyChanged("ClickScriptFunction", clickScriptFunction)) //{ // string ajaxClickFunction = String.Empty; // //ajaxClickFunction += String.Format("{0}.purgeListeners('click');", ClientJavascriptID); // ajaxClickFunction += String.Format("{0}.un('click', X.{0}.initialConfig.listeners.click);", XID); // ajaxClickFunction += String.Format("{0}.on('click',{1});", XID, clickScriptFunction); // AddAjaxPropertyChangedScript(ajaxClickFunction); //} //OB.Listeners.AddProperty(OptionName.Click, String.Format("{0}_click", ClientJavascriptID), true); //OB.AddProperty(OptionName.Handler, "function(){alert('sss');}", true); //string style = String.Empty; //if (CssStyle == "" || !CssStyle.ToLower().Contains("display")) //{ // style += CssStyle + "display:inline;"; //} //OB.RemoveProperty(OptionName.Style); //OB.AddProperty(OptionName.Style, style); //AddExtraStyle("display", "inline"); #endregion #region Menu if (_menu != null && Menu.Items.Count > 0) { OB.AddProperty("menu", Menu.XID, true); } else if (!String.IsNullOrEmpty(MenuID)) { Menu contextMenu = ControlUtil.FindControl(this.Page, MenuID) as Menu; if (contextMenu != null) { OB.AddProperty("menu", contextMenu.XID, true); } } #endregion #region Type string submitButtonScript = String.Empty; if (Type == ButtonType.Submit) { submitButtonScript = String.Format("F.submitbutton='{0}';", ClientID); } else if (Type == ButtonType.Reset) { OB.AddProperty("handler", JsHelper.GetFunction("F.util.reset();"), true); } #endregion string createScript = String.Format("var {0}=Ext.create('Ext.button.Button',{1});", XID, OB.ToString()); AddStartupScript(submitButtonScript + createScript); }