类型“Button”的控件“Button2”必须放在具有 runat=server 的窗体标记内
问题如题,内容如下:
<div id="div1" runat="server" style="height: 444px;width:444px; background-color: #008000;" visible="false">
<asp:Button ID="Button1" runat="server" Text="Button1" onclick="Button1_Click" />
</div>
<div id="div2" runat="server" style="background-color: #808000; width: 100px; height: 100px">
<asp:Button ID="Button2" runat="server" Text="Button" />问题就在这里 </div>
我把Button控件换成Label就不会提示问题了,网上有些答案是加Form,但是我想知道这是为什么?
------最佳解决方案--------------------因为Button是回发控件,所有需要回发的控件都必须放在form runat="server"标记内。
------其他解决方案--------------------表单提交,div放在<form id="form1" runat="server">里
------其他解决方案--------------------类型“Button”的控件“Button2”必须放在具有 runat=server 的窗体标记内
------其他解决方案--------------------楼主别纠结啦,Button 是会向服务器回发的,必须放在runat='server'标记的form 里,这是.net 的规定
------其他解决方案--------------------我把这两个Div都放在Form里面了,这样可以行了,但是那我第一个Button放在Div1里面了就没有问题啊,这个是咋回事呢?
------其他解决方案--------------------楼上已经说的很清楚了!+1
------其他解决方案--------------------
因为你的Div1设置了visible="false"
------其他解决方案--------------------
我的DIV2设置visible=true时还是有问题啊
------其他解决方案--------------------好吧,我记着这个吧,
------其他解决方案--------------------
就是因为你设置了为true才会报错啊,你要是把div1里面的visible也设为true,button1也会出错的,就是说你一定要记住Button 是会向服务器回发的,必须放在runat='server'标记的form 里