簡體   English   中英

如何使用c#ASP.NET顯示警報提示?

[英]How to display alert prompt using c# ASP.NET?

使用c#ASP.NET在DB內部提交數據后,我無法顯示警告消息。我在下面解釋我的代碼。

mission.aspx.cs:

protected void submit_Click(object sender, EventArgs e)
{

    missionBO objMissionBo = new missionBO();
    if (HiddenField1.Value == "")
    {
        objMissionBo.heading = TextBox1.Text.Trim();
        if (insertimage.HasFile)
        {
            //int length = insertimage.PostedFile.ContentLength;
            string filename = insertimage.FileName;
            insertimage.PostedFile.SaveAs(Server.MapPath(@"~\Upload\" + filename.Trim()));
            string path = filename.Trim();
            //byte[] imgbyte = new byte[length];
            //HttpPostedFile img = insertimage.PostedFile;
            //img.InputStream.Read(imgbyte, 0, length);
            objMissionBo.image = path;

        }
        objMissionBo.description = TextBox2.Text.Trim();
        missionvissionBL objMissionBL = new missionvissionBL();
        string action = "insert";
        int result = objMissionBL.insertMissionData(objMissionBo, action);
        if (result == 1)
        {
            ClientScript.RegisterStartupScript(this.GetType(), "prompt", "var value = prompt('Data inserted successfully.'); storeinput(value);", true);
            clearAll();
            Response.Redirect("missionvision.aspx");
        }
        else
        {
            ClientScript.RegisterStartupScript(this.GetType(), "prompt", "var value = prompt('Data could not inserted successfully.'); storeinput(value);", true);
        }
    }

<script>
    function storeinput(value) {
        console.log('value',value);
        document.getElementById("<%=hidValue.ClientID%>").value = value;
    }
</script>

我在這里的要求是,每次提交值后,我都必須顯示成功/錯誤消息。

我使用以下代碼在服務器端彈出警報。 盡管它是VB,但您可以將其轉換。

Dim strMsg As String
strMsg = "<script language=javascript> alert('Hi'); </script>"
Page.RegisterStartupScript("alert", strMsg)

公共類MessageBox {私有靜態Hashtable m_executingPages = new Hashtable();

public MessageBox(){}

/// <summary>
/// Show alert window
/// </summary>
/// <param name="sMessage">Alert text</param>
public static void Show(string sMessage)
{
    // If this is the first time a page has called this method then
    if (!m_executingPages.Contains(HttpContext.Current.Handler))
    {
        // Attempt to cast HttpHandler as a Page.
        Page executingPage = HttpContext.Current.Handler as Page;

        if (executingPage != null)
        {
            // Create a Queue to hold one or more messages.
            Queue messageQueue = new Queue();

            // Add our message to the Queue
            messageQueue.Enqueue(sMessage);

            // Add our message queue to the hash table. Use our page reference
            // (IHttpHandler) as the key.
            m_executingPages.Add(HttpContext.Current.Handler, messageQueue);

            // Wire up Unload event so that we can inject 
            // some JavaScript for the alerts.
            executingPage.Unload += new EventHandler(ExecutingPage_Unload);
        }
    }
    else
    {
        // If were here then the method has allready been 
        // called from the executing Page.
        // We have allready created a message queue and stored a
        // reference to it in our hastable. 
        Queue queue = (Queue)m_executingPages[HttpContext.Current.Handler];

        // Add our message to the Queue
        queue.Enqueue(sMessage);
    }
}

  private static void ExecutingPage_Unload(object sender, EventArgs e)
  {
    // Get our message queue from the hashtable
    Queue queue = (Queue) m_executingPages[ HttpContext.Current.Handler ];

    if( queue != null )
    {
      StringBuilder sb = new StringBuilder();

      // How many messages have been registered?
      int iMsgCount = queue.Count;

      // Use StringBuilder to build up our client slide JavaScript.
      sb.Append( "<script language='javascript'>" );

      // Loop round registered messages
      string sMsg;
      while( iMsgCount-- > 0 )
      {
        sMsg = (string) queue.Dequeue();
        sMsg = sMsg.Replace( "\n", "\\n" );
        sMsg = sMsg.Replace( "\"", "'" );
        sb.Append( @"alert( """ + sMsg + @""" );" );
      }

      // Close our JS
      sb.Append( @"</script>" );

      // Were done, so remove our page reference from the hashtable
      m_executingPages.Remove( HttpContext.Current.Handler );

      // Write the JavaScript to the end of the response stream.
      HttpContext.Current.Response.Write( sb.ToString() );
    }
  }

}

您可以使用MessageBox類,只需調用:MessageBox.Show(“ TEST”); 就是這樣。

將以下解決方案用於來自C#的提示消息

只需在代碼中調用需要的GetMessage函數即可,如下行所示

GetMessage("warning","Your message which you want to disply")

下面提供的功能用於警報提示

public void GetMessage(string messageType, string message)
{
   StringBuilder sb = new StringBuilder();
   sb.Append("<script type='text/javascript'>");
   sb.Append("alert('" + messageType + " : " + message + "');");
   sb.Append("</script>");
   ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "ajax", sb.ToString(), false);
}

如果消息或消息類型包含"'則必須使用“ Replace以避免出現問題,例如message.Replace("'", " ");

protected void submit_Click(object sender, EventArgs e)
{

    missionBO objMissionBo = new missionBO();
    if (HiddenField1.Value == "")
    {
        objMissionBo.heading = TextBox1.Text.Trim();
        if (insertimage.HasFile)
        {
            //int length = insertimage.PostedFile.ContentLength;
            string filename = insertimage.FileName;
            insertimage.PostedFile.SaveAs(Server.MapPath(@"~\Upload\" + filename.Trim()));
            string path = filename.Trim();
            //byte[] imgbyte = new byte[length];
            //HttpPostedFile img = insertimage.PostedFile;
            //img.InputStream.Read(imgbyte, 0, length);
            objMissionBo.image = path;

        }
        objMissionBo.description = TextBox2.Text.Trim();
        missionvissionBL objMissionBL = new missionvissionBL();
        string action = "insert";
        int result = objMissionBL.insertMissionData(objMissionBo, action);
        if (result == 1)
        {
            ClientScript.RegisterStartupScript(this.GetType(), "prompt", "alert('Data inserted successfully.'); storeinput('"+result +"');", true);
            clearAll();
            Response.Redirect("missionvision.aspx");
        }
        else
        {
            ClientScript.RegisterStartupScript(this.GetType(), "prompt", "alert('Data could not inserted successfully.'); storeinput('"+result +"');", true);
        }
    }

<script>
    function storeinput(value) {
        console.log('value',value);
        document.getElementById("<%=hidValue.ClientID%>").value = value;
    }
</script>

暫無
暫無

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

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