2010-06-18 60 views
0

我正在处理一个asp.net应用程序,并且我有一些在OnInit事件上动态创建的控件。Asp.net脚本管理器与按钮冲突

其中一个控件是一个asp按钮,一直工作良好,直到现在。当我在页面上添加ScriptManager时,同一个按钮无法回发。只有在取出ScriptManager时才有效。

有没有类似这样的东西给别人看过?我以某种方式使网页无效?

编辑:

这是我的脚本经理标签:

<asp:ScriptManager ID="ScriptManager1" runat="server" 
EnablePageMethods="true" EnableScriptGlobalization="true" 
EnableScriptLocalization="true"> 
</asp:ScriptManager> 

//My Dynamic Button: 
Button button1 = new Button 
      { 
       ID = "button1", 
       Text = "Ok" 
      }; 
      button1.Click += new EventHandler(Button1_Click); 

好了,一个奇怪的事情。 还没弄清楚我有这种行为的原因,但是,如果按钮是在一个容器内,比如一个表格单元格,那么它能够回发。可能是一个解决办法

+0

请出示你的代码是如何将一个按钮,你怎么丝事件 – 2010-06-18 13:11:43

+0

即使我加上设计模式的另一个按钮,这个新按钮简化版,回来后与sccrip经理标签 – DJPB 2010-06-18 13:21:14

+0

我试着各种方式,我认为你可能会插入按钮,我不能让它不工作 – 2010-06-18 13:48:39

回答

0
<form id="form1" runat="server"> 
    <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" EnableScriptGlobalization="true" EnableScriptLocalization="true" /> 
    <div>  
     <p id="lblClickedFlag" runat="server"> 
     </p> 
     <div id="container" runat="server"> 
     </div> 
    </div> 
</form> 


protected void Page_Init(object sender, EventArgs e) 
{ 
    //My Dynamic Button: 
    Button button1 = new Button 
    { 
     ID = "button1", 
     Text = "Ok" 
    }; 
    button1.Click += Button1_Click; 
    container.Controls.Add(button1); 
} 

protected void Button1_Click(object sender, EventArgs e) 
{ 
    lblClickedFlag.InnerText = "clicked"; 
} 


this works for me