在VB中转换asp.net中的messageBox

时间:2014-02-25 10:27:26

标签: asp.net vb.net

我有以下创建消息框的功能。

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中的工作方式相同,因为我需要它来返回一个值?

3 个答案:

答案 0 :(得分:1)

您无法以这种方式提示用户,因为ASP.NET是服务器端语言。您需要使用javascript(或JQuery用于更高级的弹出窗口)来执行以下操作:

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

如果您希望确认返回服务器:

根据您的要求,有很多方法可以做到这一点。 我不知道哪个最适合你的煽动,但最简单的方法是通过向主URL添加查询字符串值来刷新页面。例如,假设您的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返回的结果发送到服务器,这更复杂但不需要重新加载页面...

答案 1 :(得分:0)

没有这样的直接选择来实现这一目标。

ASP.NET在页面加载后终止进程。您可以使用ajax或事件处理发送请求。

答案 2 :(得分:0)

asp.net中没有messagebox这样的东西。你可以做这个替代方案。

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