ASP.NET确认对话框第二次无法运行

时间:2017-01-04 05:11:52

标签: javascript c# jquery asp.net

我有一个表格,我有一个下拉列表和许多标签。当我从下拉列表中选择一个选项时,它从与该选项相关的数据库中获取数据并将它们填充到字段中。然后我有一个删除按钮。当我点击它时,列表中的特定选定字段将从数据库中删除。为了这个,在我点击删除按钮之前删除它要求弹出确认对话框,当我单击确定它将删除。我正在使用以下代码。

的JavaScript

<script type = "text/javascript">
    function Confirm() {
        if (Page_ClientValidate()) {
            var confirm_value = document.createElement("INPUT");
            confirm_value.type = "hidden";
            confirm_value.name = "confirm_value";
            if (confirm("You really want to delete the data?")) {
                confirm_value.value = "Yes";
            } else {
                confirm_value.value = "No";
            }
            document.forms[0].appendChild(confirm_value);
        }
    }
</script>

C#

protected void button_delete_Click(object sender, EventArgs e)
{
    string confirmValue = Request.Form["confirm_value"];
    if (confirmValue == "Yes")
    {
        // delete data from database
    }
}

ASP.NET

<asp:Button ID="button_delete" Visible="false" Text="Delete" runat="server" OnClientClick="Confirm()" OnClick="button_delete_Click" />

最初,删除按钮设置为visible=false,只有在从列表中选择项目后才会显示。这是否会影响回发后的确认对话框或其他内容?它是第一次工作,我手动重新加载页面后尝试它的工作原理。但是当我连续不加载页面的时候,它第二次就不能工作了。这是什么问题?

1 个答案:

答案 0 :(得分:1)

根据条件更改确认以返回true或false值。

function Confirm() {

    var isFormValid = Page_ClientValidate();
    var isConfirmedByUser = confirm("You really want to delete the data?");

    //returns true when form is valid and user confirms action
    return (isFormValid  && isConfirmedByUser);               
}

并将OnClientClick更改为

<asp:Button ID="button_delete" Visible="true" Text="Delete" runat="server" OnClientClick="return Confirm();" OnClick="button_delete_Click" />

当Confirm()向OnClientClick返回false值时,它不应该进行回发。