我是使用.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?');";
}

10-04 22:25
查看更多