2011-01-24 99 views
1

我想在MessageBox中顯示我的驗證錯誤消息。我有四個文本框和一個按鈕控件。當我單擊按鈕控件時,沒有文本的文本框將顯示在MessageBox中。我已經差不多完成了這一步,但問題在於當我單擊按鈕時,MessageBox以最小化窗口打開。所以最終用戶很難實現。我想在點擊按鈕時向用戶顯示MessageBox。如何在ASP.NET Web應用程序中顯示Windows.Form.MessageBox?

這裏是我的代碼,在按鈕單擊事件

ErrorMsg=""; 

if (TextBox1.Text == "") 
{ 
    ErrorMsg += "Name is required!"; 
    ErrorMsg += "\n"; 
} 
if (TextBox2.Text == "") 
{ 
    ErrorMsg += "Address is required!"; 
    ErrorMsg += "\n"; 
} 
if (TextBox3.Text == "") 
{ 
    ErrorMsg += "Phone No. is required!"; 
    ErrorMsg += "\n"; 
} 
if (TextBox4.Text == "") 
{ 
    ErrorMsg += "City is required!"; 
    ErrorMsg += "\n"; 
} 
if (ErrorMsg.Length == 0) 
{ 
    //Some Code 
} 
else 
{ 
    MessageBox.Show(ErrorMsg, "Existing Address", MessageBoxButtons.OK, MessageBoxIcon.Error); 
} 

在此先感謝...

回答

5

不能在ASP.NET應用程序中使用Windows消息框。這只是沒有意義。 ASP.NET吐出HTML/javascript/CSS,這就是你應該用來通知用戶出了什麼問題。因此,例如在ASP.NET應用程序,你可以使用RegisterStartupScript方法注入Javascript腳本到頁面將執行當頁面加載並使用alert功能:

ScriptManager.RegisterStartupScript(this, GetType(), "error", "alert('oops');", true); 

其他更傳統的技術,來執行驗證一個ASP.NET應用程序涉及使用validation controls

+0

到目前爲止,我使用了驗證控件。但用戶要求我顯示爲一個MessageBox。 – thevan 2011-01-24 07:35:45

+0

@thevan,那麼你將不得不向用戶解釋ASP.NET和WinForms不是同一件事,而他所要求的僅僅是沒有意義,因爲ASP.NET應用程序在服務器上運行。由於您似乎有一個客戶端,其中有一些有趣的*期望:-) – 2011-01-24 07:37:00

0

創建像

private void MessageBoxShow(Page page, string message) 
{ 
    Literal ltr = new Literal(); 
    ltr.Text = @"<script type='text/javascript'> alert('" + message + "') </script>"; 
    page.Controls.Add(ltr); 
} 

的功能,並從任何.aspx頁面中調用它

MessageBoxShow(this,message); 

重要的是,如果你使用的用戶控件,那麼你需要改變功能參數頁到用戶控件。

0

爲什麼不使用Ajax control toolkit

然後,您可以調整彈出窗口的內容,我相信它比Windows樣式彈出消息更少侵入。

0

我們可以使用windows消息框即使在ASP.Net Web應用程序 需要在Visual Studio,然後右鍵點擊可以參考下面

  1. 打開Solution Explorer中執行步驟>添加Refrence
  2. 搜索system.windows和系統.windows.form程序集並添加它們
  3. 然後在您想要使用消息框的.aspx窗體添加程序集使用system.windows和system.windows.form 然後您可以使用Windows應用程序的所有功能在您的網頁
相關問題