Asp.net 动态按钮上的模式弹出窗口

Asp.net 动态按钮上的模式弹出窗口,asp.net,modalpopupextender,dynamic-controls,Asp.net,Modalpopupextender,Dynamic Controls,在我的Web应用程序中,我动态添加了一个名为“单击我”的按钮。在第1阶段,单击按钮时,必须显示一个警报框。在第2阶段,它必须显示一个弹出窗口。 我使用ModalPopupXtender实现弹出窗口。问题是,弹出窗口只是闪烁一次,而不是不断显示。下面是我的代码…有人能帮我摆脱这个吗 Page_OnLoad(): ************** Button Button1=new Button(); Button1.Text="Click Me !"; Button1.

在我的Web应用程序中,我动态添加了一个名为“单击我”的按钮。在第1阶段,单击按钮时,必须显示一个警报框。在第2阶段,它必须显示一个弹出窗口。 我使用ModalPopupXtender实现弹出窗口。问题是,弹出窗口只是闪烁一次,而不是不断显示。下面是我的代码…有人能帮我摆脱这个吗

Page_OnLoad():
**************
     Button Button1=new Button();
     Button1.Text="Click Me !";
     Button1.ID="LogBut";
     Controls.Add(LogBut);
第一阶段:

      JavaScript:
      ***********
          function alert()
          {
             alert("Stage 1");
          }

      Code behind:
      ************
       LogBut.Attributes.Add("OnClick", "alert();");
第2阶段:

      JavaScript:
      ***********
          var Modalpopup='<%=modalPermission.ClientID %>';
          function Popup()
          {
             $find(Modalpopup).show();
          }

     Design:
     *******
           <Ajax:ModalPopupExtender ID="modalPermission" runat="server" TargetControlID="Infield"
                   PopupControlID="divPermission"></Ajax:ModalPopupExtender>
           <asp:HiddenField ID="Infield" runat="server" />

     Code Behind:
     ************
           LogBut.Attributes.Add("OnClick", "Popup();");
JavaScript:
***********
var Modalpopup='';
函数Popup()
{
$find(Modalpopup.show();
}
设计:
*******
代码隐藏:
************
添加(“OnClick”,“Popup();”;
注意:我使用隐藏字段控件的Id作为ModaPopupExtender的TargetControlId。我正在日历控件中添加此按钮

日历截图:


模式弹出窗口不记得它应该在弹出窗口后显示。如果要将弹出显示附加到按钮,则必须禁用回发到服务器。最可能的问题是,按钮显示模式,但也回发,回发时,模式不记得它应该显示。您可以通过执行以下操作终止回发:;设置

UseSubmitBehavior='false'
在服务器端按钮上,然后在弹出功能中,执行以下操作:

function Popup(e) {
   // stop button event propagation, which causes postback
   if (e.stopPropagation)
      e.stopPropagation();
   if (e.preventDefault)
      e.preventDefault();

   // show modal
}
这将防止按钮回发到服务器


EDIT:您的函数表示Popup,但您的javascript将showpopup()呈现为函数调用。如果该函数不存在(拼写完全相同),它将永远不会停止回发。

它对我有效。但问题是,当我在日历控件中添加该按钮时,它不起作用。抱歉@Brian Mains,而不是编辑我的帖子。我编辑了你的评论。真的很抱歉,没问题。我修好了。还编辑了我的帖子。。。服务器上的方法是showpopup(),您的代码示例具有Popup()。它们必须具有相同的名称。只需在服务器端将OnClick属性的函数名更改为Popup()。Ya。。。函数名在代码隐藏中更改为showpopup()。但问题仍然存在。