在一個asp.net Windows窗體應用程序,在C#代碼後面你可以使用:ASP.NET Web應用程序的消息框
MessageBox.Show("Here is my message");
有一個asp.net web應用程序的任何等同? 我可以從後面的C#代碼中調用一些東西,它會向用戶顯示一個消息框嗎?
此示例的用法:我有一個按鈕,用於在後面的代碼中加載文件。當文件被加載或者如果有錯誤,我想彈出消息給用戶說明結果。
對此的任何想法?
在一個asp.net Windows窗體應用程序,在C#代碼後面你可以使用:ASP.NET Web應用程序的消息框
MessageBox.Show("Here is my message");
有一個asp.net web應用程序的任何等同? 我可以從後面的C#代碼中調用一些東西,它會向用戶顯示一個消息框嗎?
此示例的用法:我有一個按鈕,用於在後面的代碼中加載文件。當文件被加載或者如果有錯誤,我想彈出消息給用戶說明結果。
對此的任何想法?
您想使用警報。不幸的是,它不如Windows窗體。
ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('" + myStringVariable + "');", true);
這個問題在這裏類似:http://forums.asp.net/t/1461308.aspx/1
不是真的。服務器端代碼發生在服務器上---你可以使用javascript在客戶端顯示某些東西給用戶,但顯然它只會在客戶端執行。這是客戶端服務器Web技術的本質。當你得到你的迴應時,你基本上與服務器斷開連接。
爲什麼不應該爲此使用jQuery彈出窗口。我使用bpopup
來實現此目的。請參閱關於此的更多信息。
http://dinbror.dk/bpopup/
有幾個解決方案;如果您熟悉CSS,這裏是一個非常靈活的解決方案:
創建一個適當的風格Panel
類似於「消息盒子」,把一個Label
在它和它的Visible
屬性設置爲false
。然後每當用戶需要查看的消息後回傳(例如按下按鈕),從代碼隱藏在Label
小號Text
屬性設置爲所需的錯誤消息,並且Panel
的Visible
屬性設置爲true
。
右鍵單擊解決方案資源管理器,然後選擇添加reference.one
對話框將會出現。在那個選擇(.net)-> System.windows.form
。進口System.Windows.Forms (vb)
和使用System.windows.forms(C#)
複製此代碼,然後寫messagebox.show("")
。
-1:WinForms不會幫助Web服務器代碼。 – Richard 2013-10-19 10:58:32
Richard是正確的。不要這樣做。這將在服務器上顯示消息框。 – 2013-11-12 08:17:09
只需將命名空間添加:
System.Windows.forms
到Web應用程序的參考或什麼都和你有訪問您:
MessageBox.Show("Here is my message");
我想它和它的工作。
祝你好運。
哈哈,不!這將顯示服務器上的消息框。 – 2013-11-12 08:16:09
,如果你將包括
System.Windows.forms
的命名空間,然後它會發生衝突。 使用
btn_click()
{
System.Windows.Forms.MessageBox.Show("Hello");
}
不!這將在服務器上顯示消息框。 – 2013-11-12 08:16:47
或創建解決方案這樣的方法:
public static class MessageBox {
public static void Show(this Page Page, String Message) {
Page.ClientScript.RegisterStartupScript(
Page.GetType(),
"MessageBox",
"<script language='javascript'>alert('" + Message + "');</script>"
);
}
}
然後你可以使用它像:
MessageBox.Show("Here is my message");
只是爲了記錄。
Here is a link from Microsoft,我認爲是提出一個的MessageBox在ASP.Net
最好的辦法還它呈現像是和NO選擇。
說明如何獲得從link製作項目類:
將此代碼添加到您的ASPX頁面,您要在其中顯示消息框:
<asp:Literal ID="PopupBox" runat="server"></asp:Literal>
將此代碼添加到您的要進行CS頁要決定:
string title = "My box title goes here";
string text = "Do you want to Update this record?";
MessageBox messageBox = new MessageBox(text, title, MessageBox.MessageBoxIcons.Question, MessageBox.MessageBoxButtons.YesOrNo, MessageBox.MessageBoxStyle.StyleA);
messageBox.SuccessEvent.Add("YesModClick");
PopupBox.Text = messageBox.Show(this);
此方法添加到您的CS頁。這是用戶單擊是時將執行的內容。您不需要爲NoClick
方法創建另一個。
[WebMethod]
public static string YesModClick(object sender, EventArgs e)
{
string strToRtn = "";
// The code that you want to execute when the user clicked yes goes here
return strToRtn;
}
一個WebUserControl1.ascx文件添加到您的根路徑,並且該代碼添加到文件:
<link href="~/Styles/MessageBox.css" rel="stylesheet" type="text/css" />
<div id="result"></div>
<asp:ScriptManager runat="server" ID="scriptManager" EnablePageMethods="True">
</asp:ScriptManager> //<-- Make sure you only have one ScriptManager on your aspx page. Remove the one on your aspx page if you already have one.
添加此行對你ASPX頁的頂部:
<%@ Register src="~/MessageBoxUserControl.ascx" tagname="MessageBoxUserControl" tagprefix="uc1" %>
將此行添加到您的ASPX頁面(裏面你ASP:內容標籤,如果你有一個)
<uc1:MessageBoxUserControl ID="MessageBoxUserControl1" runat="server" />
保存圖像文件1.jpg, 2.jpg, 3.jpg, 4.jpg
從Microsoft Project上方到您的~/Images/
路徑。
完成
希望它能幫助。
巴勃羅
這對我來說很有效,它無論如何都是正式的MS解決方案。 – Fandango68 2014-11-04 04:00:06
沒有用updatepanel – Somebody 2016-07-14 18:28:32
這個工作適用於VisualStudio 2005和ASP.net 2嗎? – Fandango68 2016-11-23 02:50:25
'ASP.net的MessageBox
' 一個ScriptManager添加到ASP.Net頁面
<asp:scriptmanager id="ScriptManager1" runat="server" />
嘗試:
{
string sMsg = "My Message";
ScriptManager.RegisterStartupScript(Page, Page.GetType, Guid.NewGuid().ToString(), "alert('" + sMsg + "')", true);
}
您需要引用命名空間
using System.Windows.Form;
,然後在代碼
protected void Button1_Click(object sender, EventArgs e)
{
MessageBox.Show(" Hi....");
}
錯誤的做法... – 2015-04-25 20:58:04
加爲他人已經指出,一個消息框將是客戶方的JavaScript。所以問題是如何從服務器端強制客戶端JS消息框。一個簡單的解決方案是包括這在HTML:
<script>
var data = '<%= JsData %>';
alert(data);
</script>
,並填補了這一data
從服務器端代碼隱藏:
public partial class PageName : Page
{
protected string JsData = "your message";
注意該字符串值應該是一個JavaScript字符串,即是一個單行的,但它可能包含逃脫的換行符\n
。
現在,您可以使用您的所有Javascript或JQuery技能和技巧,在客戶端使用該消息文本執行任何操作,例如顯示簡單的alert()
,如上面的代碼示例或複雜的消息框或消息旗幟。
(注意,彈出式窗口有時皺眉和阻塞)
還要注意的是,由於HTTP協議,只能響應於所述用戶向服務器發送一個HTTP請求中示出的消息。與WinForm應用程序不同,Web服務器無論何時認爲合適,都不能將消息推送給客戶端。
如果您只想顯示一次消息,而不是在用戶使用F5刷新頁面後顯示消息,則可以使用javascript代碼設置和讀取cookie。在任何情況下,使用這種方法的好處在於它是從服務器獲取數據到客戶端上的JavaScript的簡單方法,並且您可以使用所有JavaScript功能來完成您喜歡的任何事情。
什麼是myStringVariable? – adityawho 2013-03-23 05:11:11
myStringVariable只是一個字符串。它將被設置爲您希望顯示的消息。 – Gage 2013-03-25 20:02:10
@Gage在事件被觸發後,當消息框打開時,用戶會看到一個'OK'按鈕。無論如何要連接一個Response.Redirect(「desired/path.aspx」);對此? – JsonStatham 2014-07-25 14:30:17