我有一个表格,我有一个下拉列表和许多标签。当我从下拉列表中选择一个选项时,它从与该选项相关的数据库中获取数据并将它们填充到字段中。然后我有一个删除按钮。当我点击它时,列表中的特定选定字段将从数据库中删除。为了这个,在我点击删除按钮之前删除它要求弹出确认对话框,当我单击确定它将删除。我正在使用以下代码。
的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
,只有在从列表中选择项目后才会显示。这是否会影响回发后的确认对话框或其他内容?它是第一次工作,我手动重新加载页面后尝试它的工作原理。但是当我连续不加载页面的时候,它第二次就不能工作了。这是什么问题?
答案 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值时,它不应该进行回发。