65.9K
CodeProject 正在变化。 阅读更多。
Home

自定义消息栏

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2013 年 10 月 11 日

CPOL

4分钟阅读

viewsIcon

7346

 今天我将向您展示我通常用于显示消息的标准位置的消息栏,例如确认、错误、

 

今天我将向您展示我通常用于显示消息的标准位置的消息栏,例如确认、错误、警报等。我还将此自定义消息栏与 ASP.net Validation Summary 控件嵌入,验证控件将相应地工作。


以下是您需要遵循的简单步骤


将以下代码添加到您的 aspx 页面,它将显示除验证控件外的自定义消息。例如,当您将记录保存在数据库中时,您可以在页面上显示记录已成功保存。

<!-- 消息栏-->
    <table style="border-collapse: collapse" width="100%" align="center" border="0">
        <tr>
            <td>
                <table id="msgs" style="border-collapse: collapse" bordercolor="#cccccc" cellpadding="1"
                    width="100%" align="left" border="1" runat="server">
                    <tbody>
                        <tr>
                            <td>
                                <table width="100%" bgcolor="#fffce1" border="0">
                                    <tr>
                                        <td align="center" width="20" bgcolor="#fffce1">
                                            <asp:Image ID="msgpic" runat="server"></asp:Image></td>
                                        <td class="message" bgcolor="#fffce1">
                                            <asp:Label ID="msgtext" runat="server"></asp:Label></td>
                                    </tr>
                                </table>
                            </td>
                        </tr>
                    </tbody>
                </table>
            </td>
        </tr>
    </table>
    <!-- // 消息栏-->

此控件将在同一界面中显示,但它仅与验证控件一起显示,因此也添加此行。

<asp:validationsummary id=validSum runat="server" CssClass="rtext" Width="100%" ForeColor=" " DisplayMode="SingleParagraph"></asp:validationsummary>


在您的页面(表示层)代码隐藏文件中添加此行代码。

#region 帮助消息代码
    /// <summary>
    /// 显示消息栏
    /// </summary>
    /// <param name="strError">错误文本</param>
    /// <param name="dtype">图片类型</param>
    /// <param name="myMsg">好的消息</param>
    private void DisplayConfMsg(string strError, short dtype, string myMsg)
    {
        UserInterface.UI cls;
        string strMsg;
        switch (dtype)
        {
            case 1
                if (string.IsNullOrEmpty(strError) == true)
                {
                    strMsg = myMsg;
                    cls = new UI(msgtext, msgs, msgpic);
                    cls.DisplayMsg(strMsg, false);
                }//if
                else
                {
                    strMsg = strError;
                    cls = new UI(msgtext, msgs, msgpic);
                    cls.DisplayMsg(strMsg, true);
                }//else
                break;
            case 2
                strMsg = myMsg;
                cls = new UI(msgtext, msgs, msgpic);
                cls.DisplayMsg(strMsg, "1");
                break;
            case 3
                strMsg = myMsg;
                cls = new UI(msgtext, msgs, msgpic);
                cls.DisplayMsg(strMsg, "3");
                break;
        }//switch
    }//DisplayConfMsg
    #endregion


这是用户界面类,我在这里存放了所有与消息栏相关的函数。所以只需创建一个并粘贴此代码。
      
  private System.Web.UI.HtmlControls.HtmlTable msgs;
        private System.Web.UI.WebControls.Label msgtext;
        private System.Web.UI.WebControls.Image msgpic;

        #region Message Bar

        public UI(System.Web.UI.WebControls.Label ml, System.Web.UI.HtmlControls.HtmlTable tb, System.Web.UI.WebControls.Image mpic)
        {
            msgs = tb;
            msgtext = ml;
            msgpic = mpic;

        }

        public void DisplayMsg(string textmsg, bool typemsg)
        {
            if (typemsg == true)
            {
                msgs.Visible = true;
                msgtext.CssClass = "errortext";
                msgtext.Text = textmsg;
                msgpic.ImageUrl = "images/errorpic.gif";


            }
            else
            {
                msgs.Visible = true;
                msgtext.CssClass = "oktext";
                msgtext.Text = textmsg;
                //msgtext.Style["color"] = "#666666";
                //msgtext.Style["CssClass"]="message";
                msgpic.ImageUrl = "images/okpic.gif";
                msgtext.Attributes.Add("class", "message");
            }
        }//DisplayMsg

        public void DisplayMsg(string textmsg, string typemsg)
        {
            if (typemsg == "1")
            {
                msgs.Visible = true;
                msgtext.CssClass = "errortext";
                msgtext.Text = textmsg;
                msgpic.ImageUrl = "images/msgpic.gif";
            }
        }//DisplayMsg

        /// <summary>
        /// 用于消息栏
        /// </summary>
        /// <param name="textmsg"></param>
        /// <param name="typemsg"></param>
        public void DisplayStatus(string textmsg, short typemsg)
        {

            switch (typemsg)
            {
                case 1
                    msgs.Visible = true;
                    msgtext.CssClass = "msgtext";
                    msgtext.Text = textmsg;
                    msgpic.ImageUrl = "images/testpic.gif";
                    break;
            }
        }

        /// <summary>
        /// 用于消息栏
        /// </summary>
        public void ClearMsg()
        {
            msgs.Visible = false;
            msgtext.CssClass = "";
            msgtext.Text = "";
            msgpic.ImageUrl = "";
        }
        #endregion


完成以上所有步骤后,您最终需要在(表示层)中传递消息


//显示确认消息
string err=””;
string msg=”您的记录已成功更新。”;

DisplayConfMsg(err, 1, msg);

//显示错误消息
string err=”错误:更新记录时发生未知错误。”;
string msg=””;

DisplayConfMsg(err,0, msg);


对于验证控件,请在 ASPX 页面中添加此控件。

<asp:RequiredFieldValidator ID="rfvFocalPoints" runat="server" ControlToValidate="ddlFocalPoints"
                                    CssClass="rtext" ErrorMessage='<table style="BORDER-COLLAPSE: collapse" width="100%" align="center" border="0"><tr><td><table id="msgs" style="BORDER-COLLAPSE: collapse" borderColor="#cccccc" cellPadding="1" width="100%" align="left" border="1" runat="server"><tbody><tr><td><table width="100%" bgColor="#fffce1" border="0"><tr><td align="center" width="20" bgColor="#fffce1"><IMG src="images/warn.gif" border="0"></td><td class="message" bgColor="#fffce1"><asp:label id="msgtext" CssClass="errortext" Runat="server">Please select Focal Point from the dropdown list.</asp:label></td></tr></table></td></tr></tbody></table></td></tr></table>'
                                    Font-Names="Wingdings 3" ForeColor=" " InitialValue="0">f</asp:RequiredFieldValidator>

选择验证控件消息和自定义消息栏的想法是因为用户将体验到相同的外观和感觉来查看任何系统相关消息。

编码愉快!

© . All rights reserved.