AJAX Control Toolkit modalpopupextender Show () не отображает всплывающее окно, а вывод возвращает «Переход по не-пользовательскому коду» - PullRequest
0 голосов
/ 26 января 2019

Я пытаюсь заменить все традиционные функции 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

...