2008-09-03 46 views

回答

6

你可以回发期间调用Show()方法,以防止模态弹出窗口关闭从

MyModalPopoupExtender.Show() 
3
protected void Page_Load(object sender, EventArgs e) 
{ 
    if (Page.IsPostBack) 
    { 
     // reshow 
     MyModalPopup.Show() 
    } 
} 
1

我猜的作品,但不是我的情况。我有一个用户控件在模式弹出窗口中打开,并且此用户控件使自己回发。所以在该用户控件中,我没有模态弹出属性。

我想,我必须为我的用户控件创建一个事件,打开模式弹出窗口的页面必须在此事件中重新打开它。

1

就像你已经知道的那样,模式弹出窗口只是客户端,是的,你可以在回发期间收集信息,但是如果你做回发,他会隐藏100%的时间。

当然,和其他人一样,你可以在回发期间做一个.show,但这取决于你需要做什么。

其实,我不知道为什么你需要回发,如果是为了一些验证尝试做客户端。

你能告诉我们为什么你需要做回发,也许我们可以帮助你更好! :)

+1

嘿,谢谢你的回答,但我真的不记得这个问题:)我想我们摆脱了它。 – 2009-02-12 19:54:08

+1

哈哈哈!好吧然后XD 也许你可以发布你的解决方案(它的工作方式atm),如果你不介意。我很好奇这件事,我想看看你能做到这一点! – ForceMagic 2009-02-12 20:36:21

1

以前的情况...

在Simple.aspx中,用户必须输入公司的名称。如果用户不记得公司的名称,他可以点击一个按钮,这将打开一个弹出式模式窗口。

我想在模式窗口中执行的操作是允许用户搜索公司列表。他可以输入部分名称并单击搜索。比赛将显示在下面的列表中。他可以点击列表中的一个项目并返回。如果公司不存在,他可以点击“新建”按钮创建一家新公司。

所以,正如你所看到的,我想在这个模式窗口中有很多功能。

谢谢!

JC

+0

在这种情况下,在用户控件的父页面上定义一个自定义事件,并且即使编写代码以打开模式弹出窗口。 – 2016-12-21 12:16:21

9

将控件放入更新面板中。请参阅我的示例代码,pnlControls是认为将在弹出显示控件控制:

<asp:Panel ID="pnlControls" runat="server"> 

    <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
     <ContentTemplate> 
       <asp:Button ID="TestButton" runat="server" Text="Test Button" onclick="TestButton_Click" /> 
      <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>   
     </ContentTemplate> 

    </asp:UpdatePanel> 

这会为你:)

最好的问候做的工作, 格雷戈尔PRIMAR

1

在回发过程中遇到同样的问题保持模式打开。

我的解决办法:

使用事件目标来确定是否回发是从模态控制来,不断的开放模式,如果它是。如果模态打开,回发可以来自模态中的控制。

在包含模态的页面控件的加载事件中。确定回发是否来自 我的孩子。确定它是否来自模态面板中的控件。

Protected Sub Control_Load(sende As Object, e As EventArgs) Handles Me.Load 
     If IsPostBack Then 
      Dim eventTarget As String = Page.Request.Params.Get("__EventTarget") 
      Dim eventArgs As String = Page.Request.Params.Get("__EventArgument") 

      If Not String.IsNullOrEmpty(eventTarget) AndAlso eventTarget.StartsWith(Me.UniqueID) Then 
       If eventTarget.Contains("$" + _credentialBuilder.ID + "$") Then 
        ' Postback from credential builder modal. Keep it open. 
        showCredentialBuilder = True 
       End If 
      End If 
     End If 
    End Sub 

在预渲染检查我的标志和手动显示模式

Protected Sub Control_PreRender(ByVal sende As Object, ByVal e As EventArgs) Handles Me.PreRender 
     If showCredentialBuilder Then 
      _mpeCredentialEditor.Show() 
     End If 
    End Sub