如何更改用户控件的公共属性?

时间:2011-01-11 08:33:21

标签: asp.net

我的网站项目中有一个非常简单的用户控件,其中包含公共属性声明,如下所示

    public DateTime StartDate
    {
        get
        {
            return _startDate;
        }
        set
        {
            _startDate = value;
        }
    }
    public DateTime EndDate
    {
        get
        {
            return _endDate;
        }
        set
        {
            _endDate = value;
        }
    }

当我将ascx文件拖到我的aspx页面之一时,当我转到aspx页面后面的代码时,我可以通过intelisense访问控件属性,但是当我通过visual studio运行项目时,我得到错误“名称” uctTest1'在当前上下文中不存在“修复错误的任何建议吗?

这是我在运行项目uctTest.StartDate = DateTime.Now;

时显示错误的行

aspx页面标记:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="removetest.aspx.cs" Inherits="removetest" %>
<%@ Register src="~/uctTest.ascx" tagname="testCtl" tagprefix="uc1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>

    <uc1:testCtl ID="uctTest1" runat="server" />

</div>
</form>
</body>
</html>

后面的aspx页面代码:

 protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack) 
    {
        uctTest1.StartDate = DateTime.Now;

    }
}
protected void btnEdit_Click(object sender, EventArgs e)
{

}

2 个答案:

答案 0 :(得分:0)

您似乎错过了.aspx文件中的@Register指令,指的是.ascx控件的路径。

http://msdn.microsoft.com/en-us/library/c76dd5k1(v=vs.71).aspx

答案 1 :(得分:0)

我在网站项目中有另一个具有不同文件名的aspx页面,另一个开发人员从我的aspx页面复制了该页面,该页面在该复制页面中具有相同的<%@ Page Language="C#" AutoEventWireup="true" CodeFile="aspxpagename.aspx.cs" Inherits="aspxpageClass" %>指令。即使复制的分页没有用户控制奇怪的页面我工作报告错误。更改该页面指令的代码文件,将属性继承到不同的值可以解决问题。