Удаление данных с помощью всплывающего окна подтверждения в ASP.NET и с RequiredFieldValidator
Я использую следующий код для удаления записей из базы данных с помощью подтверждения.
ASP.NET
<asp:TextBox ID="text_delete" Width="70%" Height="60px" ValidationGroup="del" CssClass="textbox" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="required_desc" CssClass="validator" ValidationGroup="del" ControlToValidate="text_delete" ErrorMessage="Reason Required" runat="server">Reason Required</asp:RequiredFieldValidator>
<asp:Button ID="button_delete" CssClass="button" ValidationGroup="del" Text="Delete" runat="server" OnClientClick="Confirm()" OnClick="button_delete_Click" />
JavaScript
<script type = "text/javascript">
function Confirm() {
var confirm_value = document.createElement("INPUT");
confirm_value.type = "hidden";
confirm_value.name = "confirm_value";
if (confirm("Do you want to delete this 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 the data
}
if (confirmValue == "No")
{
// Do not delete data
}
}
Но здесь я хочу, чтобы пользователь сначала ввел причину удаления в текстовом поле, и только после этого должно появиться всплывающее окно подтверждения. Даже если я использую обязательное поле валидатора, валидатор запускается только после всплывающего окна. Как я могу запустить валидатор первым и только если причина введена, должно появиться всплывающее окно для подтверждения удаления. Как я могу это сделать?
1 ответ
Решение
Вы можете вызвать обязательную проверку поля в скрипте, используя Page_ClientValidate() или Page_ClientValidate("имя группы"), если хотите быть более конкретным.
if(Page_ClientValidate()){
....popup confirmation code
....
}