Example #1
0
        /// <summary>
        /// 生成按钮客户端点击事件的脚本
        /// </summary>
        /// <param name="validateForms"></param>
        /// <param name="validateTarget"></param>
        /// <param name="enablePostBack"></param>
        /// <param name="postBackEventReference"></param>
        /// <param name="confirmText"></param>
        /// <param name="confirmTitle"></param>
        /// <param name="confirmIcon"></param>
        /// <param name="confirmTarget"></param>
        /// <param name="onClientClick"></param>
        /// <param name="disableControlJavascriptID"></param>
        /// <returns></returns>
        internal static string ResolveClientScript(string[] validateForms, Target validateTarget, bool validateMessageBox, bool enablePostBack, string postBackEventReference,
                                                   string confirmText, string confirmTitle, MessageBoxIcon confirmIcon, Target confirmTarget, string onClientClick, string disableControlJavascriptID)
        {
            // 1. validateScript
            string validateScript = String.Empty;

            if (validateForms != null && validateForms.Length > 0)
            {
                #region old code

                //StringBuilder sb = new StringBuilder();
                //sb.Append("var forms=[];");
                //foreach (string formId in validateForms)
                //{
                //    Control control = ControlUtil.FindControl(formId);
                //    if (control != null && control is ControlBase)
                //    {
                //        sb.AppendFormat("forms.push(X.{0});", (control as ControlBase).ClientJavascriptID);
                //    }
                //}
                ////sb.Append("if(!box_validForms(forms,'表单不完整','请为 “{0}” 提供有效值!')){return false;}");
                //sb.AppendFormat("var validResult=X.util.validForms(forms);if(!validResult[0]){{{0}return false;}}",
                //    Alert.GetShowReference("请为 “'+validResult[1].fieldLabel+'” 提供有效值!", "表单不完整"));

                #endregion
                JsArrayBuilder array = new JsArrayBuilder();
                foreach (string formID in validateForms)
                {
                    Control control = ControlUtil.FindControl(formID);
                    if (control != null && control is ControlBase)
                    {
                        array.AddProperty((control as ControlBase).ClientID);
                    }
                }

                validateScript = String.Format("if(!X.util.validForms({0},'{1}',{2})){{return false;}}", array.ToString(), TargetHelper.GetName(validateTarget), validateMessageBox.ToString().ToLower());
            }

            // 2. 用户自定义脚本
            string clientClickScript = onClientClick;
            if (!String.IsNullOrEmpty(clientClickScript) && !clientClickScript.EndsWith(";"))
            {
                clientClickScript += ";";
            }


            // 3. 回发脚本
            string postBackScript = String.Empty;
            if (enablePostBack)
            {
                if (!String.IsNullOrEmpty(disableControlJavascriptID))
                {
                    postBackScript += String.Format("X.disable('{0}');", disableControlJavascriptID);
                    //postBackScript += String.Format("X.util.setHiddenFieldValue('{0}','{1}');", ResourceManager.DISABLED_CONTROL_BEFORE_POSTBACK, disableControlClientId);
                    //postBackScript += String.Format("X.util.setDisabledControlBeforePostBack('{0}');", disableControlJavascriptID);
                }
                postBackScript += postBackEventReference;
            }



            if (!String.IsNullOrEmpty(confirmText))
            {
                #region old code

                // 对confirm进行处理,对<script></script>包含的内容做js代码处理
                //string confirmText = ConfirmText.Replace("'", "\"");
                //if (confirmText.Contains("<script>"))
                //{
                //    confirmText = confirmText.Replace("<script>", "'+");
                //    confirmText = confirmText.Replace("</script>", "+'");
                //}
                //confirmText = String.Format("'{0}'", confirmText);

                //JsObjectBuilder ob = new JsObjectBuilder();
                //ob.AddProperty(OptionName.Title, String.Format("'{0}'", confirmTitle), true);
                //ob.AddProperty(OptionName.Msg, String.Format("'{0}'", JsHelper.GetStringWithJsBlock(confirmText)), true);
                //ob.AddProperty(OptionName.Buttons, "Ext.MessageBox.OKCANCEL", true);
                //ob.AddProperty(OptionName.Icon, String.Format("'{0}'", MessageBoxIconName.GetName(confirmIcon)), true);
                //ob.AddProperty(OptionName.Fn, String.Format("function(btn){{if(btn=='cancel'){{return false;}}else{{{0}}}}}", postBackScript), true);

                //postBackScript = String.Format("Ext.MessageBox.show({0});", ob.ToString());

                #endregion
                postBackScript = Confirm.GetShowReference(confirmText, confirmTitle, confirmIcon, postBackScript, "return false;", confirmTarget);
            }



            return(validateScript + clientClickScript + postBackScript);
        }
Example #2
0
        /// <summary>
        /// 获取显示确认对话框的客户端脚本
        /// </summary>
        /// <param name="message">对话框消息</param>
        /// <param name="title">对话框标题</param>
        /// <param name="icon">对话框图标</param>
        /// <param name="okScript">点击确定按钮执行的客户端脚本</param>
        /// <param name="cancelScript">点击取消按钮执行的客户端脚本</param>
        /// <param name="target">弹出对话框的目标页面</param>
        /// <returns>客户端脚本</returns>
        public static string GetShowReference(string message, string title, MessageBoxIcon icon, string okScript, string cancelScript, Target target)
        {
            Confirm confirm = new Confirm();
            confirm.Message = message;
            confirm.Title = title;
            confirm.MessageBoxIcon = icon;
            confirm.OkScript = okScript;
            confirm.CancelScript = cancelScript;
            confirm.Target = target;

            return confirm.GetShowReference();

            /*
                if (String.IsNullOrEmpty(title))
                {
                    title = "F.util.confirmTitle";
                }
                else
                {
                    title = JsHelper.GetJsString(title.Replace("\r\n", "\n").Replace("\n", "<br/>"));
                }
                message = message.Replace("\r\n", "\n").Replace("\n", "<br/>");


                JsObjectBuilder ob = new JsObjectBuilder();
                ob.AddProperty("title", title, true);
                ob.AddProperty("msg", JsHelper.GetJsStringWithScriptTag(message), true);
                ob.AddProperty("buttons", "Ext.MessageBox.OKCANCEL", true);
                ob.AddProperty("icon", String.Format("{0}", MessageBoxIconHelper.GetName(icon)), true);
                ob.AddProperty("fn", String.Format("function(btn){{if(btn=='cancel'){{{0}}}else{{{1}}}}}", cancelScript, okScriptstring), true);

                string targetName = "window";
                if (target != Target.Self)
                {
                    targetName = TargetHelper.GetScriptName(target);
                }
                return String.Format("{0}.Ext.MessageBox.show({1});", targetName, ob.ToString());
                */
            //string scriptTitle = "''";
            //if (!String.IsNullOrEmpty(title))
            //{
            //    scriptTitle = JsHelper.Enquote(title.Replace("\r\n", "\n").Replace("\n", "<br/>"));
            //}
            //string scriptMessage = JsHelper.EnquoteWithScriptTag(message.Replace("\r\n", "\n").Replace("\n", "<br/>"));

            //string scriptIconName = "''";
            //if (icon != MessageBoxIcon.Warning)
            //{
            //    scriptIconName = String.Format("'{0}'", MessageBoxIconHelper.GetShortName(icon));
            //}

            //string scriptTargetName = "''";
            //if (target != Target.Self)
            //{
            //    scriptTargetName = String.Format("'{0}'", TargetHelper.GetName(target));
            //}
            //string scriptCancel = JsHelper.Enquote(cancelScript);
            //string scriptOK = JsHelper.Enquote(okScript);



            //JsObjectBuilder jsOB = new JsObjectBuilder();

            //if (!String.IsNullOrEmpty(cancelScript))
            //{
            //    jsOB.AddProperty("cancel", cancelScript);
            //}

            //if (!String.IsNullOrEmpty(okScript))
            //{
            //    jsOB.AddProperty("ok", okScript);
            //}

            //if (target != Target.Self)
            //{
            //    jsOB.AddProperty("target", TargetHelper.GetName(target));
            //}

            //if (icon != MessageBoxIcon.Warning)
            //{
            //    jsOB.AddProperty("messageIcon", MessageBoxIconHelper.GetShortName(icon));
            //}

            //if (!String.IsNullOrEmpty(title))
            //{
            //    jsOB.AddProperty("title", title.Replace("\r\n", "\n").Replace("\n", "<br/>"));
            //}

            //if (!String.IsNullOrEmpty(message))
            //{
            //    jsOB.AddProperty("message", JsHelper.EnquoteWithScriptTag(message.Replace("\r\n", "\n").Replace("\n", "<br/>")), true);
            //}

            //return String.Format("F.confirm({0});", jsOB.ToString());

            
        }
Example #3
0
        /// <summary>
        /// 获取显示确认对话框的客户端脚本
        /// </summary>
        /// <param name="message">对话框消息</param>
        /// <param name="title">对话框标题</param>
        /// <param name="icon">对话框图标</param>
        /// <param name="okScript">点击确定按钮执行的客户端脚本</param>
        /// <param name="cancelScript">点击取消按钮执行的客户端脚本</param>
        /// <param name="target">弹出对话框的目标页面</param>
        /// <returns>客户端脚本</returns>
        public static string GetShowReference(string message, string title, MessageBoxIcon icon, string okScript, string cancelScript, Target target)
        {
            Confirm confirm = new Confirm();

            confirm.Message        = message;
            confirm.Title          = title;
            confirm.MessageBoxIcon = icon;
            confirm.OkScript       = okScript;
            confirm.CancelScript   = cancelScript;
            confirm.Target         = target;

            return(confirm.GetShowReference());

            /*
             *  if (String.IsNullOrEmpty(title))
             *  {
             *      title = "F.util.confirmTitle";
             *  }
             *  else
             *  {
             *      title = JsHelper.GetJsString(title.Replace("\r\n", "\n").Replace("\n", "<br/>"));
             *  }
             *  message = message.Replace("\r\n", "\n").Replace("\n", "<br/>");
             *
             *
             *  JsObjectBuilder ob = new JsObjectBuilder();
             *  ob.AddProperty("title", title, true);
             *  ob.AddProperty("msg", JsHelper.GetJsStringWithScriptTag(message), true);
             *  ob.AddProperty("buttons", "Ext.MessageBox.OKCANCEL", true);
             *  ob.AddProperty("icon", String.Format("{0}", MessageBoxIconHelper.GetName(icon)), true);
             *  ob.AddProperty("fn", String.Format("function(btn){{if(btn=='cancel'){{{0}}}else{{{1}}}}}", cancelScript, okScriptstring), true);
             *
             *  string targetName = "window";
             *  if (target != Target.Self)
             *  {
             *      targetName = TargetHelper.GetScriptName(target);
             *  }
             *  return String.Format("{0}.Ext.MessageBox.show({1});", targetName, ob.ToString());
             */
            //string scriptTitle = "''";
            //if (!String.IsNullOrEmpty(title))
            //{
            //    scriptTitle = JsHelper.Enquote(title.Replace("\r\n", "\n").Replace("\n", "<br/>"));
            //}
            //string scriptMessage = JsHelper.EnquoteWithScriptTag(message.Replace("\r\n", "\n").Replace("\n", "<br/>"));

            //string scriptIconName = "''";
            //if (icon != MessageBoxIcon.Warning)
            //{
            //    scriptIconName = String.Format("'{0}'", MessageBoxIconHelper.GetShortName(icon));
            //}

            //string scriptTargetName = "''";
            //if (target != Target.Self)
            //{
            //    scriptTargetName = String.Format("'{0}'", TargetHelper.GetName(target));
            //}
            //string scriptCancel = JsHelper.Enquote(cancelScript);
            //string scriptOK = JsHelper.Enquote(okScript);



            //JsObjectBuilder jsOB = new JsObjectBuilder();

            //if (!String.IsNullOrEmpty(cancelScript))
            //{
            //    jsOB.AddProperty("cancel", cancelScript);
            //}

            //if (!String.IsNullOrEmpty(okScript))
            //{
            //    jsOB.AddProperty("ok", okScript);
            //}

            //if (target != Target.Self)
            //{
            //    jsOB.AddProperty("target", TargetHelper.GetName(target));
            //}

            //if (icon != MessageBoxIcon.Warning)
            //{
            //    jsOB.AddProperty("messageIcon", MessageBoxIconHelper.GetShortName(icon));
            //}

            //if (!String.IsNullOrEmpty(title))
            //{
            //    jsOB.AddProperty("title", title.Replace("\r\n", "\n").Replace("\n", "<br/>"));
            //}

            //if (!String.IsNullOrEmpty(message))
            //{
            //    jsOB.AddProperty("message", JsHelper.EnquoteWithScriptTag(message.Replace("\r\n", "\n").Replace("\n", "<br/>")), true);
            //}

            //return String.Format("F.confirm({0});", jsOB.ToString());
        }