2012-05-25 43 views
0

我在Visual Studio 2010中使用了消息框。它在調試模式下工作,但在服務器上不起作用。爲什麼它不起作用?消息框在調試模式下顯示。爲什麼不顯示在本地主機上?

if (MessageBox.Show("Invoice sample already exists. Do you want to overwrite it?.", "Overwrite", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1, MessageBoxOptions.ServiceNotification) == DialogResult.OK) 
{ 

    dr.Close(); 
    con.Close(); 
    con.Open(); 
    cmd = new SqlCommand("sp_pdm_shopping_upload_update", con); 
    cmd.CommandType = CommandType.StoredProcedure; 
    cmd.Parameters.Add(new SqlParameter("@sample", SqlDbType.Char, 10)); 
    cmd.Parameters.Add(new SqlParameter("@image", SqlDbType.Image)); 
    cmd.Parameters.Add(new SqlParameter("@type", SqlDbType.Char, 10)); 
    cmd.Parameters["@sample"].Value = txt_code.Text; 
    cmd.Parameters["@image"].Value = imgbyte; 
    cmd.Parameters["@type"].Value = "INV"; 
    cmd.ExecuteNonQuery(); 
    con.Close(); 
    //getuploadinvoice(); 
    //getuploadimage(); 
    ErrorMsg.Visible = true; 
    ErrorMsg.Text = "The image has been successfully updated."; 


} 
+0

這是一個ASP.NET應用程序嗎?你的標籤表明它是...如果是這樣,你爲什麼使用消息框?你期望他們展示哪個終端? –

+0

是的Visual Studio 2010 ..我用system.windows.forms彙編和命名空間..但在我的系統上工作和調試時間..但託管項目不顯示消息框...建議我 –

+0

我想覆蓋圖像,所以我想消息框中是或不是選項單擊是意味着執行代碼並上傳圖像。不覆蓋圖像意味着點擊否,並省略代碼 –

回答

0

當然,它不顯示。您甚至不能保證有一個終端可以顯示ASP.NET應用程序的消息框。它們僅用於Windows客戶端應用程序,而不是Web應用程序。

而不是使用消息框,而是將您的調試信息寫入日誌文件。如果你谷歌它,你會發現很多如何做到這一點的例子。

如果您需要用戶確認,就像它從評論中看到的一樣,然後使用@AdrianSalazar在他的回答中建議的javascript確認對話框。

+0

微軟的企業庫包含一個很好的日誌記錄塊,它可能相當有用。 – Mark

1

在你的HTML按鈕上你應該放一個JavaScript代碼。例如:

<input type="button" value="Save" onclick="return confirm('Invoice sample already exists. Do you want to overwrite it?.')" /> 

然後在您的服務器端正常運行。只有接受對話框的用戶才能訪問您的服務器端功能。