簡體   English   中英

如何在重定向之前顯示消息

[英]How do I show a message before redirect

我將員工保存到數據庫中

成功之后,我想向用戶顯示消息,我創建了一個方法來做到這一點:

<div class="MessagePanelDiv">
    <asp:Panel ID="Message" runat="server" Visible="False">
        <button type="button" class="close" data-dismiss="alert">&times;</button>
        <asp:Label ID="LabelTypeMessage" CssClass="messageType" runat="server" />&nbsp;<asp:Literal ID="LiteralMessage" runat="server" />
    </asp:Panel>
</div>

與javscript:

 $(document).ready(function () {
     window.setTimeout(function () {
         $(".alert").fadeTo(1500, 0).slideUp(500, function () {
             $(this).remove();
         });
     }, 3000);
 });

以及Code-Behind中的ShowMessage()方法:

public void ShowMessage(String message, WarningType type)
{
    //temp var to store the message type
    String MessageType;

    //gets the controls from the page
    Panel PanelMessage = this.FindControl("Message") as Panel;
    Label LiteralTypeMessage = PanelMessage.FindControl("LabelTypeMessage") as Label;
    Literal LiteralMessage = PanelMessage.FindControl("LiteralMessage") as Literal;

    //switch case to properly set the message type
    switch (type.ToString())
    {
        case "Succes":
            MessageType = "Success!";
            break;
        case "Info":
            MessageType = "Info!";
            break;
        case "Warning":
            MessageType = "Waarschuwing!";
            break;
        case "Danger":
            MessageType = "Fout!";
            break;
        default:
            MessageType = "";
            break;
    }

    //sets the message and the type of alert, than displays the message
    LiteralTypeMessage.Text = MessageType;
    LiteralMessage.Text = " " + message;
    PanelMessage.CssClass = String.Format("alert alert-{0} alert-dismissable", type.ToString().ToLower());
    PanelMessage.Attributes.Add("role", "alert");
    PanelMessage.Visible = true;
}

現在,當員工被保存后,我會致電:

ShowMessage(GetGlobalResourceObject("Global.errors", "SaveSuccess").ToString(), WarningType.Success);

顯示消息。 這工作正常,但即時通訊正在實施新頁面,所以現在我在插入Employee之后重定向。

我的問題:添加員工后,如何在回發之前向用戶顯示消息,或者如何在用戶重定向到的頁面上顯示消息

我編輯了函數ShowMessage以接受3個變量

ShowMessage(String message, WarningType type, String redirect)

並更新了方法:

LiteralTypeMessage.Text = MessageType;
if (string.IsNullOrWhiteSpace(redirect) || redirect == ""){
        LiteralMessage.Text = " " + message;
    }
    else{
        LiteralMessage.Text = " " + message + ", <script>window.setTimeout(function () { $('.alert').fadeTo(1500, 0).slideUp(500, function() {$(this).remove();});window.location = '" + redirect + "'}, 3000);</script>";
    }

PanelMessage.CssClass = String.Format("alert alert-{0} alert-dismissable", type.ToString().ToLower());
PanelMessage.Attributes.Add("role", "alert");
PanelMessage.Visible = true;

因此,當String redirect為空時,它僅顯示消息

但是當它不顯示消息並重定向到頁面時

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM