在我的Web应用程序中,我正在动态添加一个名为“Click Me!”的按钮。在阶段1,单击按钮时,它必须显示警告框。在第2阶段,它必须显示一个Popup。 我使用ModalPopupExtender来实现弹出窗口。问题是,弹出窗口只是闪烁一次,而不是不断显示它。鉴于我的代码如下......任何人都可以帮助我摆脱这个吗?
Page_OnLoad():
**************
Button Button1=new Button();
Button1.Text="Click Me !";
Button1.ID="LogBut";
Controls.Add(LogBut);
第1阶段:
JavaScript:
***********
function alert()
{
alert("Stage 1");
}
Code behind:
************
LogBut.Attributes.Add("OnClick", "alert();");
第二阶段:
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();");
注意:我使用隐藏字段控件的Id作为ModaPopupExtender的TargetControlId。我在日历控件中添加了这个按钮。
日历的屏幕截图:
答案 0 :(得分:1)
模态弹出窗口不记得它应该在弹出窗口后显示。如果要将弹出窗口附加到按钮,则必须禁用回发到服务器。很可能你的问题是按钮显示模态,但也回发,并在回发时,模态不记得它应该显示。您可以通过执行以下操作来终止回发;设置
UseSubmitBehavior='false'
在服务器端按钮上,然后在弹出功能中执行:
function Popup(e) {
// stop button event propagation, which causes postback
if (e.stopPropagation)
e.stopPropagation();
if (e.preventDefault)
e.preventDefault();
// show modal
}
这样可以防止按钮回发到服务器。
编辑:你的函数说弹出,但是你的javascript正在渲染showpopup()作为函数调用。如果该函数不存在(拼写完全相同),它将永远不会停止回发。