2008-09-03 45 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