C# 对代码隐藏调用确认对话框并获取所选选项
我正在开发一个asp.net应用程序,需要调用一个关于代码隐藏的确认对话框。然后,我需要得到用户的点击(如果他点击OK或Cancel) 如果他单击对话框的OK按钮,我必须继续运行在调用对话框之前停止的代码 为了解决这个问题,我想在aspx中输入一个类型为button的输入,并将其样式设置为visibility:hide。因此,当用户单击OK按钮时,程序将调用此隐藏按钮,该按钮将调用一个将继续停止作业的方法 我会发布我的代码,我希望它会有所帮助 下面的代码在我的代码隐藏中,它调用确认对话框C# 对代码隐藏调用确认对话框并获取所选选项,c#,javascript,asp.net,C#,Javascript,Asp.net,我正在开发一个asp.net应用程序,需要调用一个关于代码隐藏的确认对话框。然后,我需要得到用户的点击(如果他点击OK或Cancel) 如果他单击对话框的OK按钮,我必须继续运行在调用对话框之前停止的代码 为了解决这个问题,我想在aspx中输入一个类型为button的输入,并将其样式设置为visibility:hide。因此,当用户单击OK按钮时,程序将调用此隐藏按钮,该按钮将调用一个将继续停止作业的方法 我会发布我的代码,我希望它会有所帮助 下面的代码在我的代码隐藏中,它调用确认对话框 Sys
System.Web.UI.
ScriptManager.RegisterClientScriptBlock(this, GetType(), "__Mensagem", "if (confirm('" + CustomMessage + "')){document.getElementById(\'<%=btnSave.ClientID%>\').click();}", true);
System.Web.UI。
ScriptManager.RegisterClientScriptBlock(this,GetType(),“\uu mensage”,“if(confirm('“+CustomMessage+”){document.getElementById(\'\')。click();}”,true);
下面的代码在我的aspx上,是“隐藏”按钮
我不知道他为什么不工作。单击“确认”对话框的“确定”按钮后,我收到的错误如下:Erro em tempo de execução do Microsoft JScript:“document.getElementByID(…)”énulo ou nãoéum objeto
我来自巴西,所以错误是葡萄牙语,翻译成英语是这样的:
“Microsoft JScript的document.getElementByID(…)为null或不是对象时发生运行时错误”
我看了一下页面的html代码,发现按钮不在那里
可能是因为我使用的是UpdatePanel,但当我删除它(只是为了测试,我必须使用更新面板)时,同样的错误也出现了,此时按钮出现在页面的html代码上。
在你的代码隐藏中,你设置了btnSave.visible=false代码>?如果是这样,这将阻止按钮被呈现到HTML
另外,您是否有任何理由不使用ASP:Button控件,而不是混合使用HTML和runat=“server”
最后,在浏览器中呈现页面后,在上设置type='button'
可能会有所帮助,右键单击页面,然后说“查看源代码”。检查HTML并尝试查找隐藏的按钮,如果找到,请在语句中使用其idgetElementById(\'\')
。如果你没有找到你的按钮,那么你可能已经在某个地方的代码中将它的可见性设置为false,删除它,再次按照上面的过程操作,你应该会没事的。我解决了更换零件的问题
document.getElementById(\'<%=btnSave.ClientID%>\').click();
我还用asp:按钮替换输入元素
看看我的代码现在在我的代码背后是怎样的:
System.Web.UI.
ScriptManager.RegisterClientScriptBlock(this, GetType(), "__Mensagem", "if (confirm('" + CustomMessage+ "')){$(\"#" + btnSave.ClientID + "\").click();}", true);
在我的aspx上:
<asp:Button id="btnSave" Width="0px" Text="" runat="server" onclick="btnSave_Click"/>
不建议使用Widht=“0px”和Text=”“隐藏按钮,但我使用了它,因为它不会给我带来问题。建议使用CssClass使其隐藏
因此,如果用户确认操作,则调用偶数btnSave_单击
谢谢你的回答。你好,达伦,谢谢你的回答。我检查了很多次,没有一行我在代码后面引用了这个按钮。在尝试输入之前,我尝试使用asp:按钮,两个按钮都不起作用,返回相同的错误。当我复制并粘贴到这里时,我忘记将属性type=“button”放在我的标签上,我在几分钟前删除了它以尝试type=“submit”,这也不起作用。我正在尝试其他拍摄,如果我解决了问题,我会在这里发布。再次感谢。我可以澄清一下吗,你说这个按钮在你查看源代码时不会被渲染吗?嗨,伙计,我解决了这个问题。我感谢你的帮助。我将发布solutionSee更新-我发现了问题,也表明你将来会遇到问题..嗨,帕蒂尔,我解决了问题。无论如何,谢谢你的帮助。我将发布解决方案当您将按钮移动到另一个控件(例如占位符)时,您将遇到相同的问题,因为ClientID将变得不同。我刚刚提出了实际的解决方案,请看我的更新答案。你是对的。我更新了上面的解决方案。仍在工作,现在如果将按钮移到另一个控件中,会更安全。谢谢您的建议。您可以使用clientmode=“Static”
(请参阅)。@nrodic-取决于.netversion@nrodic不幸的是,这是一种“古老”的系统,它的框架版本是3.5,所以我不能使用静态clientId
$(\"#ctl00_body_btnSave\").click();
System.Web.UI.
ScriptManager.RegisterClientScriptBlock(this, GetType(), "__Mensagem", "if (confirm('" + CustomMessage+ "')){$(\"#" + btnSave.ClientID + "\").click();}", true);
<asp:Button id="btnSave" Width="0px" Text="" runat="server" onclick="btnSave_Click"/>