List <myclass>的Usercontrol不识别myclass中的公共属性

时间:2015-12-08 10:23:20

标签: c# asp.net list properties user-controls

我正在尝试这样做:Post I Have Tried Over and Over But Failed

但即使按照示例和接受的答案后,我也无法让我的页面识别列表中的类的属性&lt;&gt;。

这是我的UserControl背后的代码:

namespace TEST.ctrl.forms
{
    public class listItem
    {
        public string Name { get; set; }
    }

    public partial class ddl : System.Web.UI.UserControl
    {
        [PersistenceMode(PersistenceMode.InnerProperty)]
        public List<listItem> ddlItem { get; set; }
    }
}

这是aspx页面:

&#13;
&#13;
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="frm_Test.aspx.cs" Inherits="TEST.forms.products.frm_Test" %>

<%@ Register Src="~/ctrl/forms/ddl.ascx" TagPrefix="d" TagName="ddl" %>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>TEST</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    	<d:ddl ID="ddl1" runat="server">
           <ddlItem Name="Bob"></ddlItem>
           <ddlItem Name="Dave"></ddlItem>
           <ddlItem Name="Frank"></ddlItem>
        </d:ddl>
    </div>
    </form>
</body>
</html>
&#13;
&#13;
&#13;

该页面了解 d:ddl 并提供 ddlItem 作为属性,但不知道&#39; 名称& #39;是。我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

ddlItemList,因此它本身没有Name属性。您的标记应如下所示:

<d:ddl ID="ddl1" runat="server">
    <ddlItem>
        <asp:listItem Name="Alice" />
        <asp:listItem Name="Bob" />
    </ddlItem>
</d:ddl>

我并非100%确定您需要asp:前缀。您可能需要将listItem课程注册到另一个<%@ Register... drective。