Javascript 使用ASP.NET服务器控件显示div的正确方法

Javascript 使用ASP.NET服务器控件显示div的正确方法,javascript,asp.net,html,Javascript,Asp.net,Html,我用ASP.NET服务器按钮隐藏了div。通过复制innerHTML,我通过JavaScript将该div的内容显示为页面上的模式窗口,但该div上的按钮不会触发服务器事件。谁知道如何解决这个问题? 谢谢第一个猜测是innerHtml不是触发事件所需代码的完整副本 也许可以克隆节点?确保隐藏的div位于标记块内。代码太多 例如: <div id='divHidden' style='display:none'> <div id='divcontentToShow'>

我用ASP.NET服务器按钮隐藏了div。通过复制innerHTML,我通过JavaScript将该div的内容显示为页面上的模式窗口,但该div上的按钮不会触发服务器事件。谁知道如何解决这个问题?

谢谢

第一个猜测是innerHtml不是触发事件所需代码的完整副本


也许可以克隆节点?

确保隐藏的div位于标记块内。

代码太多

例如:

 <div id='divHidden' style='display:none'> <div id='divcontentToShow'>
 <!-- here is asp.net button -->
 <asp:Button ID="btnSubmit" runat="server" OnClick="btnSubmit_Click" />
 </div> </div>


因此,当divcontentToShow的内容通过appendChild或innerHTML方式复制到其他div时,服务器上的btnSubmit_Click事件不会触发。

您能给我们看一些代码吗?重现问题的最小数量。如果这些按钮是服务器控件按钮,并且与服务器端的单击事件相关联,那么无论在JavaScript中对客户端进行了何种样式更改,它们都可以正常工作,因此我很好奇您是如何实现这一结果的。是的,我应该使用appendChild而不是innerHTML。一切都很完美。谢谢不幸的是,它仍然不会在服务器上触发事件,但请按ValidationGroup检查所有验证器!?有点奇怪。是不是在复制代码后,你有两个相同id的按钮?Asp.net不喜欢这样,请尝试移动节点,而不是复制。您能给我们看一下周围的代码吗?正如NerdFury所说,它必须在表单标签中。