我是使用.NET进行Web编程的新手。
我正在开发一个带有Web表单的网页,并且我想在某个时候以编程方式显示一个模式窗口,以供用户接受或取消。 JavaScript的“确认”功能究竟是什么。
我试图让它调用JavaScript函数:
Page.ClientScript.RegisterStartupScript (this.GetType (), "CallMyFunction", "MyFunction()", true);
但是我需要在不重新加载页面的情况下执行此操作,并且我还需要控制用户是否接受或取消了该操作,而且我不知道该怎么做。
我还尝试使用DevExpress的ModExPopupExtender控件来获取它。
有人可以告诉我一种获取我想要的东西的简单方法吗?
我不明白如何在Web编程中如此常见,而PHP + javascript不会造成任何问题却是如此复杂。
所有操作均以背后的代码的一键式事件开始:
protected void btn1_Click(object sender, EventArgs e)
{
//I make a series of checks
//If certain conditions I want to show the confirm
//According to the user has chosen ok or cancel will perform a certain action
}
Onclientclick对我没有帮助,因为在启动“确认”之前,我必须在服务器端进行一些检查。
非常感谢你。
最佳答案
您可以使用OnClientClick,这是大多数Web控件上的属性。
我只想调出一个简单的confirm()
对话框,如果用户单击“确定”,则执行服务器代码,如果用户取消操作,则不执行任何操作:
<asp:Button runat="server" ID="btnSave" Click="btnSave_Click" Text="Save"
OnClientClick="return confirm('Are you sure you want to do this thing?');" />
您也可以使用它进行其他操作,但是要记住的关键是,在
OnClientClick
中执行的任何操作都将在页面重新发布到服务器之前发生。这也是完全有效的:
<asp:Button runat="server" ID="btnSave"
OnClientClick="showModalConfirm('some message goes here');" ... />
<script>
function showModalConfirm(msg)
{
$(".modal .message").innerHtml(msg);
$(".modal").Show();
}
</script>
您可以以完全相同的方式设置OnClientClick应该在您的代码背后执行的操作:
protected void Page_Load(object sender, EventArgs e)
{
btnSave.OnClientClick = "return confirm('Are you sure you want to do this thing?');";
}