为什么 服务器控件一定要放在runat=server的Form里,难道ASP.net都被这个HtmlForm"束缚"着吗?为什么不用<asp:Form,而用Html的Form呢? 如果服务器控件外面直接写一个没有runat="Server"的Form,则事件不能引发,这是为什么?

解决方案 »

  1.   

    runat=server的意思就是在服务器端运行的标志,如果没有,怎么可能触发服务器端事件?没有的话,那只有自己去写JavaScirpt代码去了。
      

  2.   

    谢谢ice_frank,但是提交按钮控件我是写了Runat="Server"了的,为什么非要有HtmlForm呢,我在aspx中直接写一个不带runat="server"的form不也可以提交吗,而且HtmlForm是在System.Web.UI.HtmlControls下的,照理说应该在System.Web.UI.WebControls下才对啊?
      

  3.   

    具体原因不太清楚只知道所有runat=server的控件都必须包含在runat=server的form中应该是因为ASP.NET是靠post信息保持状态,所以必须有一个form,runat=server只是一个标记罢了。