Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对代码隐藏调用确认对话框并获取所选选项_C#_Javascript_Asp.net - Fatal编程技术网

C# 对代码隐藏调用确认对话框并获取所选选项

C# 对代码隐藏调用确认对话框并获取所选选项,c#,javascript,asp.net,C#,Javascript,Asp.net,我正在开发一个asp.net应用程序,需要调用一个关于代码隐藏的确认对话框。然后,我需要得到用户的点击(如果他点击OK或Cancel) 如果他单击对话框的OK按钮,我必须继续运行在调用对话框之前停止的代码 为了解决这个问题,我想在aspx中输入一个类型为button的输入,并将其样式设置为visibility:hide。因此,当用户单击OK按钮时,程序将调用此隐藏按钮,该按钮将调用一个将继续停止作业的方法 我会发布我的代码,我希望它会有所帮助 下面的代码在我的代码隐藏中,它调用确认对话框 Sys

我正在开发一个asp.net应用程序,需要调用一个关于代码隐藏的确认对话框。然后,我需要得到用户的点击(如果他点击OK或Cancel)

如果他单击对话框的OK按钮,我必须继续运行在调用对话框之前停止的代码

为了解决这个问题,我想在aspx中输入一个类型为button的输入,并将其样式设置为visibility:hide。因此,当用户单击OK按钮时,程序将调用此隐藏按钮,该按钮将调用一个将继续停止作业的方法

我会发布我的代码,我希望它会有所帮助

下面的代码在我的代码隐藏中,它调用确认对话框

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并尝试查找隐藏的按钮,如果找到,请在语句中使用其id
getElementById(\'\')
。如果你没有找到你的按钮,那么你可能已经在某个地方的代码中将它的可见性设置为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"/>