我有以下创建消息框的功能。
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 :(得分: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
}