Показать пользовательский контроль через статический метод

Я изучал это, но пока ничего не смог найти.

В настоящее время я использую окно предупреждения Javascript на моей странице ASP:

public static class Alert
{
 public static void Show(string message)
 {
 string 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" bordercolor="#093E9A" borderstyle="******" borderwidth="5px">
 <div>
 <asp:literal id="lSteps" runat="server">
 </asp:literal></div>
 <div>
 
 </div>
 </asp:panel>

Мне интересно, есть ли способ создать статический метод, чтобы показать это с помощью codebehind, подобно тому, как я использовал предупреждение Javascript. Я хотел бы иметь возможность обернуть это в классе, чтобы я мог просто вызвать AjaxAlert.Show(), не имея необходимости вызывать что-либо в файле aspx. Это все еще грубая идея, поэтому, если вам нужна более подробная информация, просто дайте мне знать.

1 ответ

Вы можете показать ModalPopupExtender от ModalPopupExtender. Поэтому вам нужна невидимая кнопка запуска.

mpAlert.Show();

Поэтому установите TargetControlID ModalPopupExtender на скрытую кнопку:

licensed under cc by-sa 3.0 with attribution.