ASP.NET控件在CodeBehind中不可用

8

我在ABC.ASPX页面上拖放了一个标签控件(Label control)。它成功编译了。 但是这个控件(Label2)在后台代码ABC.ASPX.cs中不可用,无法赋值。

应该如何解决?

<%@ Page language="c#" CodeBehind="ABC.aspx.cs" AutoEventWireup="false" %> 

 <asp:Label ID="Label2" runat="server" Font-Bold="True"></asp:Label>

1
也许您可以发布一些标记和代码,以便我们了解哪些部分出现了问题? - kaveman
它看起来像这样吗:<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>?如果是这样,它应该会在代码后台中显示出来。 - ron tornambe
2
你的 abc.designer.cs 文件里有什么内容? - Selçuk
您能贴出您的代码,让我们知道您正在尝试在何处访问标签吗?“不可用”是指它没有自动代码补全,还是访问它会返回 null? - Th 00 mÄ s
5个回答

10

你可能在 designer.cs 文件中缺少此条目。你可以将以下内容添加到文件中:

protected global::System.Web.UI.WebControls.Label Label2;

或者删除designer.cs文件,右键单击父级aspx文件,选择“转换为Web应用程序”。 这样将重新创建包含所有适当条目的designer.cs文件。


使用Visual Studio删除并重新生成*.cs文件,但仍然存在相同的问题。 - mohsen solhnia

2

你可能需要在页面指令中添加Inherits="XXX.ABC",其中XXX是你的根命名空间。另外,我假设你将类命名为ABC以与ABC.aspx.cs相对应。


1
创建用户组件后,我想在CalendarTest页面中进行测试。我也无法通过Code Behind访问用户组件。我没有在网上找到解决方案,但是通过反复试验,我通过以下步骤解决了它:
1)在aspx文件中,“%@Page...”需要使用“CodeFile =”而不是“Src =”来指向Code Behind文件
2)在Code Behind aspx.cs文件中,我需要将“public class CalendarTest”替换为“public partial class CalendarTest”

1
尝试移除控件,保存文件,再添加控件并重新保存文件。问题可能出现在您的*.designer.cs文件中,这种方法应该可以重新生成它。

0

在项目上右键,然后选择转换为 Web 应用程序


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接