【发布时间】:2017-03-31 19:38:29
【问题描述】:
我有一个具有GridView 的用户控件,当用户单击此GridView 中的一行时,将调用函数OnSelectedIndexChanged,我希望在发生这种情况后弹出一个模式。我使用ScriptManager 调用脚本$('#seasonInfoModal').modal(),该脚本在打开模式中起作用。问题是打开在同一用户控件中定义的模式时它不起作用。模式在 page.aspx 内时打开,但在控件 .ascx 内时不打开。我已经把所有东西都连接好了,并省略了一些细节。这是整个代码的样子
主页.aspx
<%@ Page Title="" Language="C#" ... %>
<%@ Register Src="~/Controls/MyControl.ascx" TagPrefix="ACT" TagName="GeneralADM" %>
<ACT:GeneralADM runat="server"" />
MyControl.ascx
<%@ Language="C#" AutoWireUP="true" Codebehind="" Inherits="" %>
<div runat="server">
<!-- Seasonal Info-->
<div runat="server" id="seasonInfoModal" class="modal fade" role="dialog" draggable="true">
</div>
<!-- End seasonal info-->
<!-- Start of Season Edit Modal -->
<div id="seasonEditInfo" class="modal fade" role="dialog" draggable="false">
</div>
<!-- End of Season Edit Modal -->
<asp:GridView>
</asp:GridView>
</div>
在后面的代码中,我尝试像这样打开模式
MyControl.ascx.cs
protected void OnSelectedIndexChanged(object sender, GridViewEventArgs e){
ScriptManager.RegisterStartupScript(this,
this.GetType(),
"seasonInfoModal",
"$('#seasonInfoModal').modal();",
true);
}
问题
#seasonInfoModal 不会弹出,而是创建了一个新的模态,其中没有任何内容,并且屏幕在单击时变暗。当我将#seasonInfoModal 从控件中拉出到我要插入控件本身的页面中时,模式实际上会弹出。
问题
当模态 #seasonInfoModal 在该控件的代码隐藏中,特别是在 OnSelectedIndexChanged 函数内部时,如何打开它?
【问题讨论】:
-
您真的需要从服务器端打开弹出窗口吗?你真的需要更新面板吗?他们只是把事情弄得一团糟。
-
@mason 我需要弄清楚如何在用户控件中打开模式。
-
问题是没有提供任何关于正在使用什么模式对话框的信息,也没有关于尝试打开模式的事件的详细信息。
-
@kaushalparik27 打开模式的事件是在控件内部的gridview单击上。问题是ScriptManager 没有打开#seasonInfoModal,而是创建了一个新的,因为它找不到#seasonInfoModal。那么如何从代码隐藏控制中打开#seasonInfoModal。