ASP.NET 执行代码隐藏之前确认
ASP.NET confirm before executing codebehind
我有一个用户可以删除记录的表单,我想要一条弹出消息,用户必须单击"确定"以确认删除。
删除按钮:
<asp:Button ID="btnDelete" runat="server" Text="Delete" UseSubmitBehavior="false" OnClick="btnDelete_Click" OnClientClick="confirmation();" />
确认功能:
function confirmation() {
var answer = confirm("Are you sure you want to delete? This action cannot be undone.")
}
所以现在,单击删除按钮会在后面的代码中执行 btnDelete_Click Sub,无论您在弹出框中单击确定还是取消。我知道我可以在我的 javascript 函数中添加 if (answer( { -- 这里有一些代码 -- },但是是否可以使用 javascript 从代码隐藏中执行代码?还是有其他方法可以做到这一点?
请尝试以下操作。您必须返回确认函数的结果(真或假(。
<asp:Button
ID="btnDelete"
runat="server"
Text="Delete"
UseSubmitBehavior="false"
OnClick="btnDelete_Click"
OnClientClick="return confirmation();" />
function confirmation() {
return confirm("Are you sure you want to delete?");
}
把它放在你的aspx代码中:
OnClientClick="return confirm('Are you sure you want to delete this project?');"
这是旧帖子,但你可以像这样将上面的答案放在一行中。而且您甚至不需要编写函数。
<asp:Button runat="server" ID="btnDelete" Text="Delete" OnClick="btnDelete_Click" OnClientClick="if ( !confirm('Are you sure you want to delete ? ')) return false;" />
请使用此示例:
<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="return ConfirmOnDelete();"/>
<script type="text/javascript">
function ConfirmOnDelete() {
if (confirm("Do you really want to delete?") == true)
return true;
else
return false;
}
</script>
我们可以通过使用ConfirmButtonExtender轻松做到这一点,
<ajaxToolkit:ConfirmButtonExtender ID="cbeDelete" TargetControlID="btnDelete" ConfirmText="Are you sure you want to delete? This action cannot be undone." runat="server">
它非常简单...
OP,我走得更远了。我想避免在整个应用程序中重复确认代码。我希望这可以帮助那些想要分离关注点并标准化消息传递的人。
<!- asp.net html side -->
<asp:Button
ID="btnRemoveOU"
runat="server"
Text="Delete OU"
OnClick="btnRemoveOU_Click"
OnClientClick="return confirmation('Delete the OU');" />
// javascript Side
function confirmation(action) {
var answer = confirm("Are you sure you want to " + action + "? This action cannot be undone.")
return answer;
}
呵呵
服务器端执行一些代码而不实际进行回发,你必须使用 ajax 来做到这一点。
function confirmation() {
var answer = confirm("Are you sure you want to delete? This action cannot be undone.")
if(answer)
{
$.post("ajaxserverpage.aspx?item=34",function(data){
alert(data);
});
}
return false;
}
并有一个名为 ajaxserverPage 的页面.aspx在该页面的页面加载中,检查查询字符串并执行相关的服务器端代码并返回一些字符串
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["item"] != null)
{
// read the item and do your stuff here
Response.Write("Deleted succssfully");
Response.End();
}
}
您还可以使用 generic handler (.ashx)
来执行 ajax 服务器端处理,而不是.aspx文件。我更喜欢这种方法。
实现此目的的另一种方法是使用 AJAX Toolkit ConfirmButton Extender,如下所示:
http://www.ezineasp.net/Samples/ASP-Net-AJAX-cs/Control-Toolkit/AJAX-ConfirmButton-Control/Default.aspx
1( 表单设计
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<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 save data?")) {
confirm_value.value = "Yes";
} else {
confirm_value.value = "No";
}
document.forms[0].appendChild(confirm_value);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:Button ID="btnConfirm" runat="server"
OnClick = "OnConfirm" Text ="Raise Confirm" OnClientClick = "Confirm()"/>
</form>
</body>
</html>
2( 代码隐藏
public void OnConfirm(object sender, EventArgs e)
{
string confirmValue = Request.Form["confirm_value"];
if (confirmValue == "Yes")
{
this.Page.ClientScript.RegisterStartupScript(this.GetType(),"alert('You clicked YES!')", true);
}
else
{
this.Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('You clicked NO!')", true);
}
}
3(当您单击删除按钮时,将显示确认框。
4(如果您单击确定,则确定部分将在代码中工作,否则没有部分
5(网格视图删除按钮中的相同方法。
我认为如果您无法将其与 Button 一起使用,请尝试<asp:link button>
,上面应该可以工作。我的工作得很好。
ASPX 页面:-
<asp:LinkButton ID="takeActionBtn" CausesValidation="false" runat="server"
onclientclick="return confirm('Do you really want to perform Action ?');"> Take Action </asp:LinkButton>
VB 服务器代码隐藏:-
Protected Sub takeActionBtn_Click(ByVal sender As Object, ByVal e As EventArgs) Handles takeActionBtn.Click
End Sub
我注意到的一件事是,如果您在页面中使用控件(ascx(,则可能需要在页面或控件级别关闭/打开AutoEventWireup="false" <%@ control in <%@ page
祝你好运!!
把:
onclientclick = "return (window.confirm('text message'));
在ASPX
页面中,它执行相同的操作。
如果你想让javascript访问代码后面的方法,你总是可以在RESTful服务中公开它们。
$.ajax({
url: 'url to the rest call',
success: successfuntion(),
dataType: 'text/json'
});
让 REST 调用执行您需要的任何逻辑,并发回一些数据以指示成功。然后只需使用 success 函数从 DOM 中删除该元素。
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 显示5秒后隐藏潜水
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 剑道UI内联编辑:如何在点击其他按钮时隐藏按钮
- 浮动页脚栏-使用Bootstrap隐藏
- 在jquery中为显示/隐藏设置cookie
- 单击按钮后如何逐个调用分区,上一个分区将隐藏
- 是否可以隐藏javascript确认对话框
- 如何在代码隐藏上使用 javascript 确认方法
- 如何:确认隐藏外部链接的警报
- 移动网站:隐藏“点击确认框”
- 在代码隐藏中获取确认值
- ASP.NET 执行代码隐藏之前确认
- 隐藏输入(html表单确认)-服务器端脚本?(php)
- 通过C#的代码隐藏获取确认框值
- 从jqgrid中删除行时禁用/隐藏确认对话框
- 代码隐藏通过自定义验证进行确认
- 如何从 asp.net 中的代码隐藏调用确认消息
- 使用 Javascript 从代码隐藏中捕获用户响应确认消息
- 隐藏确认表单重新提交PHP