2014-02-25 88 views
1

我有下面的函數來創建一個消息框。在asp.net中轉換messageBox在VB中

Function Question() As Boolean 

    If MsgBox("Are you sure?", MsgBoxStyle.YesNo, "Question") = MsgBoxResult.Yes Then 
     RunSubRoutine() 
     txtbox.focus     
     Return True 
    Else 
     Return False 
    End If 

End Function 

我將如何改變它,所以它的工作原理相同的ASP.Net,因爲我需要它返回一個值?

+0

你的意思是顯示ASP警報。淨? –

+0

那麼確認框。 – user3191666

+0

看到我的文章,它是一個JavaScript。您需要將其附加到頁面。希望它有幫助 –

回答

1

你就不能提示用戶,那是因爲ASP.NET是服務器端語言。您需要使用JavaScript(或JQuery的更先進的彈出窗口)是這樣做的:

<script> 
    function Question() { 
     if (confirm('Are you sure?')) { 
      document.getElementById("your_textbox_id").focus() 
     } 
    } 
</script> 

如果你想確認要返回到服務器:

有很多根據您的要求做到這一點。 我無法知道哪一個最適合你,但是通過向主URL添加查詢字符串值來刷新頁面的最佳方式。例如,假設您的網址是www.blabla.com/test.aspx那麼你可以重定向客戶端瀏覽器是這樣的:

<script> 
    function Question() { 
     if (confirm('Are you sure?')) { 
      window.location.href = "test.aspx?confirm=yes"; 
     } 
    } 
</script> 

,然後用趕在Test.aspx的頁面查詢字符串:

If Request.QueryString("confirm") = "yes" then 
    //call your asp.net routine here 
End If 

或者你也可以發表使一個AJAX請求,這是比較複雜的,但不需要重新加載頁面從JavaScript返回到服務器的結果...

+0

如果我想在聲明中調用另一個子例程,該怎麼辦? – user3191666

+0

更新了我的答案。 –

0

沒有這樣的直接選擇來實現這一點。

ASP.NET在頁面加載後破壞進程。您可以使用ajax或事件處理髮送請求。

0

在asp.net中沒有messagebox這樣的東西。你可以做這個選擇。

if(confirm('Are you sure?')){ 
    // do this 
} 
else{ 
    // do something else 
}