【问题标题】:Problem with controls dissapearing in ASP.NET WebformsASP.NET Webforms 中控件消失的问题
【发布时间】:2020-05-03 08:16:30
【问题描述】:

我真的是 ASP.NET 网络表单的新手。目前我正在尝试更改页面上的一些代码:我有一个包含多个选项卡的模式。这个想法是将其中两个选项卡的内容移动到一个弹出窗口(这也是另一个模式本身)中,当您按下按钮时会显示该弹出窗口。该代码已完成,有一段时间,我复制了相同的代码(我将选项卡保留在模态中,并且按钮还显示了一个弹出窗口,其中包含相同的两个选项卡,这意味着旧代码和新代码共存同时),弹出窗口工作得非常好,正如预期的那样。我如何让它工作只是简单地创建一个新模式,然后将原始代码复制并粘贴到选项卡面板内的两个选项卡中,一般的东西。 但是,一旦我最终删除了旧代码,整个事情就停止了工作。我复制粘贴的代码中的所有控件都停止工作;他们从设计师那里删除。如果我在设计器中设置更改,基本上是强制控件代码重新存在,错误将消失,代码将运行,但所有内容都将设置为 null,页面将无法加载。

我的新代码仍然在同一个 html 文件中,在同一个内容 div 中,但由于某种原因,我太新手了,无法理解,它只是找不到控件。这是我的html代码的sn-p:

<asp:RequiredFieldValidator ID="RequiredFieldValidator3" Display="Dynamic" ValidationGroup="PaymentTermsForm" runat="server" ControlToValidate="ddlPayeeTerms" InitialValue="0" SetFocusOnError="true" ErrorMessage="Payee Terms is required" CssClass="required-field-validator-information"></asp:RequiredFieldValidator>

完全没有 ddlPayeeTerms 控件;与复制和粘贴的所有其他元素相同。代码的所有内容都在这个标签内:

<asp:UpdatePanel runat="server" ID="UpdatePanel1" UpdateMode="Conditional">
                                            <ContentTemplate>

我对网络表单的了解还不够多,无法知道这一事实是否相关,所以我只是添加它以防万一。

我真的可以用一只手了解发生了什么以及为什么会发生,以及是否有办法解决这个问题? 在此先感谢各位。

【问题讨论】:

    标签: c# html asp.net webforms frontend


    【解决方案1】:

    如果不查看正在发生的所有事情,包括您删除它时遇到的错误,就很难回答这个问题。

    考虑到您的控件具有 runat="server",您可能有与后端控件相关联的代码(cs 文件位于 aspx 文件后面)。显然删除这些控件而不修改后面的代码会导致错误并且不起作用。后面的代码使用ID读取控件,所以它们都必须是唯一的。

    如果您可以将删除控件后遇到的错误告诉我,我或许可以为您提供更多帮助。

    【讨论】:

    • 嗯,我不知道唯一 ID,我将控件的名称命名为它们的键,所以如果名称和类型相同,它们就可以正常工作,但现在你告诉我,这可能就是发生了什么。尽管如此,它并没有考虑到这样一个事实,即当我复制和粘贴代码时,只要原始代码仍然存在,复制的代码就可以正常工作......当它尝试加载时,我只是得到一个典型的空对象异常控件(如果我将它们的代码添加到设计器中)。如果未添加控件,则表示未定义。
    • 那么,当您复制控件时,是否会自动为它们设置不同的 ID?我只需要调出我的一个旧项目,它有 aspx 页面并复制了控件。原始控件 ID 为 id="evalStatus",而复制的版本 id ="DropDownList1"(是的,控件是下拉菜单)。所以我后面的代码使用的是原始ID,一旦我删除了原始控件,它就会给我一个空对象异常,因为后面的代码找不到具有这些ID的控件。因此,要么将新控件的 ID 更新为与旧控件相同的名称,要么更新后面的代码。
    • 你是绝对正确的。上帝,我不敢相信我没有意识到这一点。你真的帮助了我,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-22
    • 2020-06-29
    相关资源
    最近更新 更多