2011-04-07 67 views
1

我創建了2個模態對話框。我的問題是,如果滿足幾個條件(點擊按鈕之後),我需要從服務器端展示它們。我一直在搜索,並有一個解決方案,將擴展器添加到隱形控件並從代碼啓動它。但由於沒有任何顯示,我想我做錯了什麼。我試着用linkbutton點擊一下,看看是否有效,這是顯示對話框。從服務器端啓動modaldialog

在此先感謝。

標記:

<asp:LinkButton ID="lnkPrompts" runat="server">LinkButton</asp:LinkButton> 

<asp:ModalPopupExtender ID="lnkPrompts_ModalPopupExtender" runat="server" 
    BackgroundCssClass="modalBackground" Enabled="True" 
    TargetControlID="lnkPrompts" PopupControlID="pnlPromptModal" 
    OkControlID="pnlPromptModal"> 
</asp:ModalPopupExtender> 

<asp:Panel ID="pnlPromptModal" runat="server" Width="350px" Height="70px" 
    CssClass="modalPopup" Style="display: none;"> 
    Some text 
    <div style=""> 
     <asp:Button ID="btnModalPromptOk" runat="server" Text="OK" /> 
    </div> 
</asp:Panel> 

在服務器端:

protected void btnViewPrompts_Click(object sender, EventArgs e) 
{ 
    if (conditionMet) 
    { 
     Response.Redirect("IvrPrompts.aspx?Id=" + breakdownView.Id); 
    } 
    else 
    { 
     //ToDo: Show modaldialogbox 
     lnkPrompts_ModalPopupExtender.Show(); //This does nothing... 
    } 
} 
+0

如何在另一臺機器上啓動對話框?從瀏覽器?對我來說,這應該是違抗所有采取的安全措施,因此網絡上的東西不會到達正在運行的計算機......您可以使用JavaScript(客戶端) – 2011-04-07 12:46:05

回答

0

我已經用你描述的方式使用了ModalPopupExtender的次數,我把它們包裝在一個UpdatePanel中。這是讓服務器端「發起」你所描述的動作的唯一方法。

-1

你需要從JavaScript做這個客戶端上。服務器無法啓動客戶端上的操作,但客戶端可以詢問服務器是否滿足條件,並根據該條件採取相應措施。您想要這樣做的方式可能是通過按下按鈕時執行從客戶端到服務器的Ajax後臺調用。

+1

Model Popup擴展器是Ajax Control Toolkit的一部分允許服務器端代碼的這種功能顯示客戶端彈出窗口。 – 2011-04-14 20:52:53

0

好吧,看起來確實有效。唯一的問題是我在lnkPrompts_ModalPopupExtender.Show();之後有一個Response.Redirect,那就是問題所在。該對話從未顯示。在註釋掉重定向之後,它就像它應該的那樣工作。

無論如何,很抱歉浪費你的時間。下一次嘗試新東西時應該更清醒......