Web界面层操作的辅助类

/** <summary>
    /// Web界面层操作的辅助类
    /// </summary>
    public sealed class UIHelper
    {
        private static ILog logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

        private UIHelper()
        {
        }

        /** <summary>
        /// 提示信息,如果异常为HWException类型,则记录到日志
        /// </summary>
        /// <param name="page">当前的页面</param>
        /// <param name="ex">异常对象</param>
        /// <param name="Close">是否关闭</param>
        public static void ShowError(Page page, Exception ex, bool Close)
        {
            logger.Error("Exception:" + page.ID, ex);

            string errorMsg = ex.Message;
            errorMsg = errorMsg.Replace("/n", " ");
            if (Close)
            {
                AlertAndClose(page, errorMsg);
            }
            else
            {
                Alerts(page, errorMsg);
            }
        }

        /** <summary>
        /// 提示信息
        /// </summary>
        /// <param name="control">当前的页面</param>
        /// <param name="message">提示信息</param>
        public static void Alerts(Control control, string message)
        {
            string script = string.Format("<script>javascript:alert(/"{0}/");</script>", message).Replace("/r/n", "");
            control.Page.RegisterStartupScript("", script);
        }

        /** <summary>
        /// 提示信息并关闭窗口
        /// </summary>
        /// <param name="control">当前的页面</param>
        /// <param name="message">提示信息</param>
        public static void AlertAndClose(Control control, string message)
        {
            string script =
                string.Format("<script>javascript:alert(/"{0}/");window.close();</script>", message).Replace("/r/n", "");
            control.Page.RegisterStartupScript("", script);
        }

        /** <summary>
        /// 将错误信息记录到事件日志中
        /// </summary>
        /// <param name="errorMessage">文本信息</param>
        public static void LogError(string errorMessage)
        {
            logger.Error(errorMessage);
        }

        /** <summary>
        /// 将错误信息记录到事件日志中
        /// </summary>
        /// <param name="ex">错误对象</param>
        public static void LogError(Exception ex)
        {
            try
            {
                logger.Error(ex.Message + "/n" + ex.Source + "/n" + ex.StackTrace);
            }
            catch
            {
            }
        }

        /** <summary>
        /// 弹出提示信息
        /// </summary>
        /// <param name="key">key</param>
        /// <param name="message">提示信息</param>
        /// <param name="page">当前请求的page</param>
        public static void Alert(string key, string message, Page page)
        {
            string msg = string.Format("<script language=/"javascript/">alert(/"{0}/");</script>", message);

            page.RegisterStartupScript(key, msg);
        }

        /** <summary>
        /// 弹出提示信息
        /// </summary>
        /// <param name="message"></param>
        /// <param name="page"></param>
        public static void Alert(string message, Page page)
        {
            Alert("message", message, page);
        }

        /** <summary>
        /// 定位到指定的页面
        /// </summary>
        /// <param name="GoPage">目标页面</param>
        public static void GoTo(string GoPage)
        {
            HttpContext.Current.Response.Redirect(GoPage);
        }

        /** <summary>
        /// 定位到指定的页面
        /// </summary>
        /// <param name="control">当前请求的page</param>
        /// <param name="page">目标页面</param>
        public static void Location(Control control, string page)
        {
            string js = "<script language=‘JavaScript‘>";
            js += "top.location=‘" + page + "‘";
            js += "</script>";
            control.Page.RegisterStartupScript("", js);
        }

        /** <summary>
        /// 提示信息并定位到指定的页面
        /// </summary>
        /// <param name="control">当前请求的page</param>
        /// <param name="page">目标页面</param>
        /// <param name="message">提示信息</param>
        public static void AlertAndLocation(Control control, string page, string message)
        {
            string js = "<script language=‘JavaScript‘>";
            js += "alert(‘" + message + "‘);";
            js += "top.location=‘" + page + "‘";
            js += "</script>";
            control.Page.RegisterStartupScript("", js);
        }

        /** <summary>
        /// 关闭页面,并返回指定的值
        /// </summary>
        /// <param name="control"></param>
        /// <param name="returnValue"></param>
        public static void CloseWin(Control control, string returnValue)
        {
            string js = "<script language=‘JavaScript‘>";
            js += "window.parent.returnValue=‘" + returnValue + "‘;";
            js += "window.close();";
            js += "</script>";
            control.Page.RegisterStartupScript("", js);
        }

        /** <summary>
        /// 获取Html的锚点
        /// </summary>
        /// <param name="innerText"></param>
        /// <param name="href"></param>
        /// <returns></returns>
        public static HtmlAnchor GetHtmlAnchor(string innerText, string href)
        {
            HtmlAnchor htmlAnchor = new HtmlAnchor();
            htmlAnchor.InnerText = innerText;
            htmlAnchor.HRef = href;

            return htmlAnchor;
        }

        /** <summary>
        /// 判断输入的字符是否为数字
        /// </summary>
        /// <param name="strValue"></param>
        /// <returns></returns>
        public static bool IsNumerical(string strValue)
        {
            return Regex.IsMatch(strValue, @"^[0-9]*$");
        }

        /** <summary>
        /// 判断字符串是否是NULL或者string.Empty
        /// </summary>
        /// <param name="text"></param>
        /// <returns></returns>
        public static bool IsNullorEmpty(string text)
        {
            return text == null || text.Trim() == string.Empty;
        }

        /** <summary>
        /// 获取DataGrid控件中选择的项目的ID字符串(要求DataGrid设置datakeyfield="ID")
        /// </summary>
        /// <returns>如果没有选择, 那么返回为空字符串, 否则返回逗号分隔的ID字符串(如1,2,3)</returns>
        public static string GetDatagridItems(DataGrid dg)
        {
            string idstring = string.Empty;
            foreach (DataGridItem item in dg.Items)
            {
                string key = dg.DataKeys[item.ItemIndex].ToString();
                bool isSelected = ((CheckBox) item.FindControl("cbxDelete")).Checked;
                if (isSelected)
                {
                    idstring += "‘" + key + "‘" + ","; //前后追加单引号,可以其他非数值的ID
                }
            }
            idstring = idstring.Trim(‘,‘);

            return idstring;
        }


        /** <summary>
        /// 设置下列列表控件的SelectedValue
        /// </summary>
        /// <param name="control">DropDownList控件</param>
        /// <param name="strValue">SelectedValue的值</param>
        public static void SetDropDownListItem(DropDownList control, string strValue)
        {
            if (!IsNullorEmpty(strValue))
            {
                control.ClearSelection();
                ListItem item = control.Items.FindByValue(strValue);
                if (item != null)
                {
                    control.SelectedValue = item.Value;
                }
            }
        }
    }

Web界面层操作的辅助类测试代码

        private void btnShowError_Click(object sender, EventArgs e)
        {
            try
            {
                throw new Exception("测试错误");
            }
            catch (Exception ex)
            {
                UIHelper.ShowError(this, ex, false);
                return;
            }
        }

        private void btnAlert_Click(object sender, EventArgs e)
        {
            UIHelper.Alert("这是一个提示信息", this);
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值