得到List< CustomClass>从页面到用户控件

本文关键字:用户 控件 List CustomClass 得到 | 更新日期: 2023-09-27 18:10:16

我有一个自定义类列表在我的页面代码后面:

public List<Category> Categories = new List<Category>();

现在,我在那个页面上也有一个用户控件,它应该显示那个列表

如何从usercontrol访问列表?或者,我可以从页面直接在用户控件中创建列表吗?

my User Control codebehind:

public List<Category> Categories = new List<Category>();
protected void Page_Load(object sender, EventArgs e)
{
}
public class Category
{
    public string category_id { get; set; }
    public string category { get; set; }
}

my Page codebehind:

public List<Category> Categories = new List<Category>();
protected void Page_Load(object sender, EventArgs e)
{
    Category MyCategory = new Category();
    MyCategory.category_id = 1;
    MyCategory.category = "sample";
    Categories.Add(MyCategory);
}
public class Category
{
    public string category_id { get; set; }
    public string category { get; set; }
}

得到List< CustomClass>从页面到用户控件

在用户控件中创建一个属性,并将列表分配给该属性

MyUserControl.ListProperty = theList;

将列表作为页面中的公共属性,并通过用户控件中的page属性访问它。您需要首先将其强制转换为您的页面类型。

var theList = ((MyPage)Page).ListProperty

将列表放到HttpContext.Current.Items中,并从那里获取。

HttpContext.Current.Items["theList"] = theList;

自从Hasan Khan开始帮助我,但从来没有回答我的额外问题…我必须找到我自己的解决办法。

我在最后的做法是,不向页面上的列表添加项目,将它们直接添加到用户控件中,如下所示:

filterControl.Categories.Add(new widgets_filter.Category{ category_id = "", category = ""});

我不知道这是不是一个好的解决方案,但至少它是有效的。

如果有人会提供一个更好的答案(与示例代码),我会尝试使用它们,同时,这就是我所拥有的。