【问题标题】:Asp Label control is null in code-behindAsp Label 控件在代码隐藏中为空
【发布时间】:2015-04-09 16:17:41
【问题描述】:

我在网页上有一个简单的 asp:Label 控件。在 Page_Load 事件中,我有条件地用警告填充标签。很简单,对吧?这曾经可以工作,但现在我收到一条错误消息,提示控件为空。

控制声明:

<table width="100%">
    <tr>
        <td align="right">
            <asp:Label ID="lblWarningLabel" runat="server" Enabled="False"></asp:Label>
        </td>
    </tr>
</table>

发现 lblWarningLabel 为空的代码隐藏:

if (sServerName.Contains("Staging") || sServerName.Contains("Test"))
            {
                Int32 iIndex = sServerName.IndexOf("/");
                lblWarningLabel.Text = "Warning: You are working on the " + sServerName.Substring(iIndex + 1) + " server!";
                lblWarningLabel.CssClass = "WarningLabel";
                lblWarningLabel.Enabled = true;
            }

我对此进行了研究,发现一些海报说他们的用户控件为空,或者他们试图动态创建控件,这两者都不属于这里。我没有使用 Resharper,但自从我上次查看这个程序以来,我已经通过 NuGet 安装了一些生产力工具。

感谢您的帮助。

更新: 我应该补充一点,同一页面上的另一个 asp:Label 控件按预期工作。 我还将“False”更改为“false”,然后一起删除了 Enabled 子句,但行为没有变化。

【问题讨论】:

    标签: asp.net null controls


    【解决方案1】:

    我找到了一个解决方案,虽然我不认为它是最好的:

    我复制了页面的 HTML 和代码隐藏并保存了它们,从项目中删除了页面并使用我保存的代码重新创建了它。重新构建,重新测试,瞧!现在可以了。

    【讨论】:

      【解决方案2】:

      您现在是否在中继器中进行控制,而以前不是?如果是这种情况,可以通过不同的方式访问它:

      Cannot Find Label Control In Repeater Control

      可能会让你开始。

      实际上可能比这更简单,但是有时使用您的代码前面和后面的代码创建的设计器文件会不同步。您可以尝试删除设计器文件,右键单击 aspx,然后“转换为 Web 应用程序”以重新生成设计器文件。此外,清理/重建以及关闭和重新打开 VS 有时会纠正问题 - 如果它是我认为的那样。

      这里有更多关于How do you force Visual Studio to regenerate the .designer files for aspx/ascx files?的信息

      【讨论】:

      • 感谢您的回复。不,它从来没有在中继器中。我尝试关闭VS并重新打开,但问题仍然存在。我会尝试你的其他建议,如果我有任何成功,我会告诉你。
      【解决方案3】:

      在您的解决方案中,该页面应该有一个 .designer.cs 文件。所以如果页面是Login.aspx,应该有一个Login.cs和Login.designer.cs。检查设计器并查看控件是否在此处列出,如果没有尝试将其从 .aspx 页面中删除并重新添加。

      【讨论】:

      • 感谢您的回复。是的,我的标签在那里,它的声明看起来与该页面上另一个标签的声明相同:protected global::System.Web.UI.WebControls.Label lblWarningLabel; protected global::System.Web.UI.WebControls.Label lblTitle;
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多