繁体   English   中英

从用户控件运行时,asp modal 弹出窗口会立即关闭

[英]asp modal popup closes immediately when running it from user control

我有一个用户控件,其中包含一个确认按钮扩展器和一个模式弹出扩展器。 看起来像:

<asp:Panel ID="panelConfirmBox" runat="server" Style="display:none;">

    <asp:Button ID="btnConfirmSelection" runat="server" CssClass="hidden"/>

    <asp:Button ID="btnNo" runat="server" Text="No" />
    <asp:Button ID="btnYes" runat="server" Text="Yes" />
              
<asp:ModalPopupExtender Id="popupConfirmBox" runat="server" PopupControlID="panelConfirmBox"  CancelControlID="btnNo" OkControlId="btnYes"  />
<asp:ConfirmButtonExtender ID="btnConfirm" runat="server" DisplayModalPopupID="popupConfirmBox"/> 

</asp:Panel>   

用户控件获得一个下拉列表。 更改下拉列表选择时,应运行按钮 onclick 事件。 在用户控件 aspx.cs 中有以下代码:

public string TargetControlId { set { popupConfirmBox.TargetControlID = btnConfirm.TargetControlID = btnConfirmSelection.ID; } }
public DropDownList DDL { get; set; }
public EventHandler OnClick { set { btnConfirmSelection.Click += value; } get { return OnClick; } }


protected void Page_Load(object sender, EventArgs e)
{            
       if (DDL != null)
       {
               string script = "$('#" + DDL.ClientID + "').on('change', function () { $('#" + btnConfirmSelection.ClientID + "').click();}); ";
               ScriptManager.RegisterStartupScript(Page, Page.GetType(), "CallChange" + ID, script, true);                 
       }
}

在 aspx 中使用用户控件如下所示:

<asp:DropDownList ID="ddl" runat="server" AutoPostBack="true"  />
<aa:DDLConfirmPopup runat="server" ID="ConfirmPopupSelectionChange" Title="aaa" Message="bbb" TargetControlId=""/>

在 aspx.cs 中:

ConfirmPopupSelectionChange.DDL = ddl;
ConfirmPopupSelectionChange.OnClick = new EventHandler(func);

protected void func(object sender, EventArgs e)
{
}

这几乎可以正常工作...问题是,在更改下拉列表选择时,弹出模式扩展器会打开,但会立即关闭。 可能是什么问题?

谢谢!

当所选项目发生变化时,您的 javascript 代码会尝试单击btnConfirmSelection按钮。 问题是,你有AutoPostBack="true" 所以它同时发回页面。 出于这个原因,当您再次从服务器获取页面时,模式似乎正在关闭。

我尚未测试您的代码,但我建议设置AutoPostBack="false"并检查是否可以解决问题。

<asp:DropDownList ID="ddl" runat="server" AutoPostBack="false"  />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM