我试图在C#中的代码隐藏中显示“是/否”消息框。如果用户单击“是”,我想调用“AddRecord”过程,如果用户单击“否”,则不执行任何操作。
理想情况下,我想使用下面的代码,但是来自codebehind:
OnClientClick = "return confirm('Are you sure you want to delete?');"
我搜索SO和谷歌,但无法找到任何有用的信息。
答案 0 :(得分:12)
,只需执行以下操作:
<asp:button ID="AddRecordbutton" runat="server" Text="Add Record"
onclick="AddRecordButton_Click" onclientclick="return confirm('add record?');" />
在你的代码中,只需将添加记录代码放在AddRecordButton_Click事件处理程序中。只有在弹出窗口中单击“是”时才会调用它。
或者,您可以让代码隐藏在最初呈现按钮时分配onclientclick代码。
例如:
protected void Page_Load(object sender, EventArgs e) {
AddRecordButton.OnClientClick = @"return confirm('Add Record?');";
}
答案 1 :(得分:2)
不,你没有。
你似乎误解了网页的基本概念。
ASPX页面是一个简短的程序,它启动,生成似乎HTML,然后终止。然后,HTML将通过Internet发送到用户浏览器。您在代码隐藏中所做的一切必须在用户看到任何内容之前完成。
你真的想要一个javascript对话框。 (实际上,根据您的描述,您可以在HTML中使用标准HTML表单创建一个看起来像消息框的div。)
答案 2 :(得分:1)
要显示实际的消息框,您需要在客户端完成javascript。无论出于何种原因,如果你不能使用javascript,你可以做AEMLoviji所建议的并且以一些聪明的方式“伪造”它。
请注意,您不需要jQuery来显示消息框,简单的javascript就足够了。
答案 3 :(得分:0)
如果您在面板上使用带有两个按钮的Ajax Control Toolkit模态弹出扩展器,这将在服务器上触发一个事件,可以处理和执行您希望的任何方法/功能
请参阅here以获取示例
答案 4 :(得分:0)
ScriptManager.RegisterStartupScript(this, GetType(), "unique_key",
"element.onclick = function(){ return confirm('Are you sure you want to delete?'); };",
true);
答案 5 :(得分:0)
显示是/否
<script>
function AlertFunction() {
if (confirm('Are you sure you want to save this thing into the database?')) {
$('#ConfirmMessageResponse').val('Yes');
} else {
$('#ConfirmMessageResponse').val('No');
}
}
</script>
从.net方面处理它:
string confirmValue = ConfirmMessageResponse.Value;
if (confirmValue == "Yes")
{...}