/** <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);
}