[英]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.