我正在尝试在其他项目中重用我的ASP用户控件,并遇到了问题.我已经在http://weblogs.asp.net/scottgu/archive/2005/08/28/423888.aspx上阅读了ScottGu的帖子并试图遵循他的模式,但运行时我的控件的子控件没有被初始化.
我的设置:我正在使用Visual Studio 2008我已经创建了一个解决方案来保存我想要分发给其他几个解决方案的控件.此解决方案包含:
这背后的想法是Innermost包含功能,而Outer包含使Innermost -controls在特定框架中工作所需的任何特殊修改.
ClassLibrary有这样的代码(这是我做的一个演示设置,以确保它是一个ASP问题,而不是我正在做的其他事情):
using System;
namespace ClassLibrary {
public class LibraryClass {
public long getLong() {
return DateTime.Now.Ticks;
}
public string getString() {
return DateTime.Now.ToString();
}
}
}
Run Code Online (Sandbox Code Playgroud)
Innermost引用库项目并且工作正常.这是此项目中UserControl的示例:
<%@ Control Language="C#" AutoEventWireup="true"
CodeBehind="WebUserControl1.ascx.cs"
Inherits="Innermost.UserControls.WebUserControl1" %>
<asp:Label ID="testLabel" runat="server"/>
Run Code Online (Sandbox Code Playgroud)
代码隐藏:
using System;
using System.Web.UI;
using ClassLibrary;
namespace Innermost.UserControls {
public partial class WebUserControl1 : UserControl {
protected void Page_Load(object sender, EventArgs e) {
LibraryClass c = new LibraryClass(); …Run Code Online (Sandbox Code Playgroud) 我有一个用户控件,我已经编写并添加到ASP.NET页面,并且运行正常.但是,我试图在Page_Load上的代码后面引用该自定义控件中的属性,但不能,因为该实例的可访问变量为null.
用户控件和Page_Load这是正常的吗?如果是这样,我如何引用控件的实例以访问其公共属性?这是我在呈现页面之前需要做的事情,以便初始化一些变量.