我有一个约束 categoryname 的 UC_Categories.ascx (UC_1)。UC_Products.ascx (UC_2)将按类别名称显示产品。它们都在一个名为 BookShop.aspx ( Page )的页面中
在页面中,当用户单击一个UC_1(步骤 1)时,它将按类别名称呈现一个UC_2 (步骤 2 )。我通过向Page发送一个参数为 categoryname 的请求来处理第 1 步。Step2 新建一个UC_2,设置属性值为categoryname,执行FillProductByCategoryName方法。然后将UC_2添加到页面中的 PlaceHolder。但我没有显示UC_2。
我需要每个人的帮助或建议。
感谢您阅读我的问题!ps:我的英文不是很好。
在 UC2 的代码隐藏中:
public void FillProduct()
{
ProductsMN productsMN = new ProductsMN();
if (dlBook == null)
{
dlBook = new DataList();
dlBook.DataSource = productsMN.GetByCategoryName(CategoryName);
dlBook.DataBind();
}
else
{
dlBook.DataSource = productsMN.GetByCategoryName(CategoryName);
dlBook.DataBind();
}
}
public string CategoryName { get; set; }
在页面的代码隐藏中
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
}
string categoryName = Request.QueryString["categoryName"] as string;
if (!string.IsNullOrWhiteSpace(categoryName))
{
BookContent.Controls.Clear(); // BookContent : Placeholder
Control c = Page.LoadControl("~/UC/UC_Books.ascx") as UC.UC_Books;
UC.UC_Books ucBook = new UC.UC_Books();
ucBook.CategoryName = categoryName;
ucBook.FillProduct(); //line 10
BookContent.Controls.Add(ucBook); //line 11
}
}
在 Page 的 PageLoad 处,useBook 包含数据。但在页面(视图)中,我看不到数据。我认为 //line11 未执行或不正确。