我的页面上有两个用户控件,如一个为导航栏,一个为有表单的用户控件。两个都放在一个页面上,如果有表单的用户控件提交后一点反应都没有(<form>表签是放在ascx控件里的,如果放在页面上同样也是没反应),并且导航栏的那个用户控件消失了???百思不得其解?!!!!求救,急啊。。
-----------------------------------------------------------------------
表单用户控件
<form id="myform" method="post" action="../links.aspx" runat="server">
<asp:button id="ddd" runat=server/>不详细写了,大概是这样子
</form>导航控件只有数据,没有表单的。不用写了吧。调用的页面
<DIV"><uc1:dfasdfasd id="ereaf" runat="server"></uc1:header></DIV>
<div><uc1:ddddd id="ddd"  runat="server"></uc1:ddddd>
</div>为什么会这样-_-!!!!

解决方案 »

  1.   

    runat=server的form,在aspx中只能有一个!
      

  2.   

    再控件中不要有form,这样就不会有此类问题。
      

  3.   

    服务器端form应该放在用户控件的包含页aspx中,而不能放在用户控件中,另外form加上runat="server"后设置action属性没有任何作用,因为它总是回发到自身。
      

  4.   

    很感谢几位不为分数而来。我试过了,不行啊。我这个用户控件是放在datalist的footertemplate里的。

    <body>
    <form runat=server>
     <datalist>
      <headertemplate>  <headertemplate/>
      <itemtemplate></itemtemplate>
     <footertemplate>   
    <div>
     <uc:myuc id=ddddd runat=server/>
    </div>
    </footertemplate> </datalist>
    </form>
    </body>
    当点用户控件里的提交后就没反应,而且连datalist裡的東西都不見了,這是為什麼。
      

  5.   

    你禁用了ViewState?或者回发后没有重新绑定数据?
      

  6.   

    没有禁用啊,我的事件是在用户控件里完成的,怎么重新绑定页面上datalist的数据??
      

  7.   

    仔细看了一下,原来真是刚才为了提高性能,把datalist的viewstate给禁错了,那我的事件是在用户控件里完成的,怎么重新绑定页面上datalist的数据??
      

  8.   

    如果没有禁用ViewState,并且没有更新数据,就不需要再重新绑定数据。
      

  9.   

    有更新数据,如果是在同一个页面里操作的话,很简单,但现在是事件在ascx里完成,而bind是在页面里,不知道该怎么解决,把datalist设为public也不行。。
      

  10.   

    用户控件实现了INamingContainer接口吗》