Я пытаюсь заменить все традиционные функции MsgBox в своем коде VB.net диалоговыми окнами AJAX Control Toolkit modalpopupextender. У меня две проблемы: панель, на которую ссылается разметка modalpopupextender, отображается на главной странице, а код .Show () VB не отображает ожидаемое всплывающее окно.
Как многие из вас, несомненно, знают, традиционная функция MsgBox, которая прекрасно работает во время отладки в Visual Studio, не работает после развертывания, потому что это WinForm, а не WebForm. Поэтому я пытаюсь преобразовать все мои функции MsgBox в диалоговые окна modalpopupextender. Я не хочу использовать javascript-оповещения, потому что они будут слишком ограничены в функциональности и, откровенно говоря, безобразны.
Это привело к двум проблемам. Во-первых, панель, на которую ссылается разметка modalpopupextender, появляется на главной странице, как только она загружается, что, очевидно, нежелательно. Во-вторых, строка .Show () в моем коде VB не отображает всплывающие окна.
Я скажу тебе кое-что еще, что я нашел странным. Если я перешагиваю код, когда я перехожу к .Show (), в окне вывода отображается следующее сообщение.
Шаг в: переход по не-пользовательскому коду 'GCDBv3._Default.get_mpe_MsgBox'
В этом случае mpe_MsgBox - это идентификатор элемента управления modalpopupextender. Я чувствую, что отладчик пропускает код, но я не уверен.
Это соответствующая разметка для главной страницы. Я начинаю с окна сообщения, которое появляется, если поле пароля имеет LEN 0 (т. Е. Обязательное поле пароля не заполнено).
<%@ Page Title="GCDB" Language="VB" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.vb" Inherits="GCDBv3._Default" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>
<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
<!-- Modal Popup Extender -->
<ajaxToolkit:ModalPopupExtender ID="mpe_MsgBox" runat="server" TargetControlID="cmd_Log_In" PopupControlID="pnl_MsgBox" CancelControlID="cmd_MsgBox_OK"></ajaxToolkit:ModalPopupExtender>
<asp:Panel ID="pnl_MsgBox" runat="server">
<p>Password required.</p>
<asp:Button ID="cmd_MsgBox_OK" runat="server" Text="OK" />
</asp:Panel>
cmd_Log_In относится к кнопке входа в систему, далее вниз по странице. Код менеджера скриптов находится на странице Site.Master , на случай, если кому-то интересно. Мне дано понять ajaxToolkit: ScriptManager больше не поддерживается.
Это соответствующий код VB. Это часть подпрограммы, которая запускается при нажатии cmd_Log_In .
If Len(txt_Password.Text) = 0 Then
'MsgBox("Password is required.")
mpe_MsgBox.Show()
Valid_Login = False
Return
End If
Все строки этого кода работают должным образом, кроме mpe_MsgBox.Show () .
Я следовал нескольким различным наборам инструкций для кода modalpopupextender, к букве, и я не получаю нужное всплывающее окно. Я также не получаю никаких сообщений об ошибках, которые я могу отладить. Как будто эта строка кода игнорируется.
Любая помощь будет принята с благодарностью. Информация о версии приведена ниже.
Visual Studio 2017 v. 15.9.5
.NET Framework v. 4.7.03062
AjaxControlToolkit v.18.1.1