AJAX Control Toolkit modalpopupextender Show()不显示弹出窗口,并且输出返回“逐步跳过非用户代码”

时间:2019-01-25 23:15:30

标签: vb.net ajaxcontroltoolkit modalpopupextender

我试图用AJAX Control Toolkit modalpopupextender对话框替换VB.net代码中的所有传统MsgBox函数。我有两个问题:modalpopupextender标记引用的面板显示在主页上,而.Show()VB代码未显示预期的弹出窗口。

许多人无疑都知道,传统的MsgBox函数在Visual Studio中的调试过程中可以正常工作,但由于是WinForm而不是WebForm,因此在部署后无法正常工作。因此,我试图将我所有的MsgBox函数转换为modalpopupextender对话框。我不想使用javascript警报,因为它们的功能太受限制,而且坦率地说,它们很丑陋。

这导致了两个问题。首先,由modalpopupextender标记引用的面板在加载后立即显示在主页上,这显然是不可取的。其次,我的VB代码中的.Show()行不显示任何弹出窗口。

我会告诉你一些我觉得奇怪的东西。如果我单步执行代码,则进入.Show()时,输出窗口将显示以下消息。

进入:跳过非用户代码'GCDBv3._Default.get_mpe_MsgBox'

在这种情况下,mpe_MsgBox是modalpopupextender控件的ID。我觉得调试器正在跳过代码,但是我不确定。

这是主页的相关标记。我首先从如果密码字段的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 4.7.03062版 AjaxControlToolkit v.18.1.1

0 个答案:

没有答案