2013-08-23 19 views
1

我一直在研究這個,但迄今爲止還沒有找到任何東西。通過靜態方法顯示用戶控件

目前,我使用的是JavaScript警告框我的ASP頁上:

public static class Alert 
{ 
    public static void Show(string message) 
    { 
     string script = "<script type=\"text/javascript\">alert('" + message + "');</script>"; 
     Page page = HttpContext.Current.CurrentHandler as Page; 

     if (!page.ClientScript.IsStartupScriptRegistered("alert")) 
     { 
      page.ClientScript.RegisterStartupScript(typeof(Alert), "alert", script); 
     } 
    } 
} 

我能夠從後面的代碼被稱之爲:Alert.Show("Text");

我的計劃是,以取代JavaScript警告利用AjaxControlToolkit的ModalPopupExtender。我創建看起來像這樣的用戶控件:

  <ajax:ModalPopupExtender ID="mpAlert" runat="server" PopupControlID="" 
       TargetControlID="btnExport" OkControlID="btnOK"> 
      </ajax:ModalPopupExtender> 
      <asp:Panel ID="pnlSteps" runat="server" BackColor="#C5D9FC" Width="10%" 
      BorderColor="#093E9A" BorderStyle="Double" BorderWidth="5px" 
      style="border-radius: 10px; padding: 5px;"> 
           <div> 
       <asp:Literal ID="lSteps" runat="server" /> 
       </div> 
       <div> 
       <input id="btnOK" type="button" value="OK" /> 
       </div> 
      </asp:Panel> 

我想知道是否有一種方法我可以創建一個靜態方法來從代碼隱藏,類似我如何使用JavaScript警告顯示這一點。我希望能夠在一個類中包裝這個,所以我可以調用AjaxAlert.Show(),而不必調用aspx文件中的任何東西。 這仍然是一個粗略的想法,所以如果需要更多的細節,請讓我知道。

+0

您可以從代碼隱藏顯示'ModalPopupExtender'。因此你需要一個不可見的觸發按鈕。 http://stackoverflow.com/questions/9826141/display-in-correct-order-using-requiredfieldvalidators-validatorcallout-and-a-m –

+0

謝謝你。這比我意識到的要容易得多。你可以發表你的評論作爲答案,所以我可以將其標記爲已接受? – Andrew

回答

0

您可以從代碼隱藏中顯示ModalPopupExtender。因此您需要一個invisible trigger按鈕。

mpAlert.Show(); 

所以設置ModalPopupExtenderTargetControlID到一個隱藏的按鈕:

<asp:Button ID="Hid_ShowDialog" Style="display: none" runat="server" />