【问题标题】:Convert inline script for code behind为后面的代码转换内联脚本
【发布时间】:2013-08-29 20:26:57
【问题描述】:

如何将此内联脚本转换为可以在后面的代码中使用的内容?在删除帐户之前,我希望警报仅显示在最后的 else 语句中。

OnClientClick = "return confirm('Are you sure you want to delete?');"

基本上我想在删除帐户之前显示一个确认删除框。

这是后面代码中的点击函数:

protected void btnDelete_Click(object sender, EventArgs e)
{
    MembershipUser userToDelete = Membership.GetUser(UserName.SelectedItem.Value);
    if (userToDelete == null)
    {
        message.Text = "User '" + UserName.SelectedItem.Value + "' Is Not Found";
    }
    else if (UserName.SelectedItem.Value == "Admin")
    {
        message.Text = "User '" + UserName.SelectedItem.Value + "' Cannot Be Deleted";
    }
    else
    {
        Membership.DeleteUser(UserName.SelectedItem.Value);
        message.Text = "User '" + userToDelete + "' Has Been Deleted";
        Response.Redirect("~/account/");
    }
}

【问题讨论】:

  • 您不能直接从服务器端执行客户端脚本。所以你可以注册这个脚本,但你不会在页面下次发回之前得到答案。您无法将其与 winforms 应用程序进行比较。最简单的方法是保留客户端脚本,因此如果用户单击删除按钮,他必须确认他确实要删除,否则回发将被取消(return false)。

标签: asp.net


【解决方案1】:

在执行服务器端函数期间,无法抛出客户端事件。相反,您必须接收数据,临时存储它,然后重新加载页面以显示确认信息。如果他们选择继续,则将重新提交表单,并且现在将保存之前临时存储的数据。

虽然,在用户提交数据之前提示用户可能更容易,并且只是将其视为将要删除它。如果逻辑检查失败,则只需提醒用户操作失败。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-16
    • 2013-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多