私はこれを前置きにしましょう:私はこれについてグーグルで高低を調べ、多くの例と解決策を見つけました、そして私はまだこれを理解することができません。
.aspx.csコードビハインドファイルには、次のものがあります。
NewsArticleList listall = NewsArticleManager.GetListAll();
foreach (NewsArticle x in listall)
{
Control c1 = (NewsArticleContainer)LoadControl("~/UserControls/NewsArticleContainer.ascx");
((NewsArticleContainer)c1).PopulateWithNewsArticle(x);
mynewspanel.Controls.Add(c1);
}
ユーザーコントロールにPopulateWithNewsArticle()というメソッドがあり、NewsArticleを受け入れ、それに応じてユーザーコントロールのWebコントロールにデータを入力します。
public void PopulateWithNewsArticles(NewsArticle x)
{
lbltitle.Text = x.Title;
lblcategory.Text = x.Category;
//...etc.
}
これで動作します。これで問題ありません。しかし、私が学び/理解したいのは、LoadControl()時にNewsArticle xをユーザーコントロールに渡す方法です。これにより、ユーザーコントロールの作成時に、ユーザーコントロールのPage_LoadでNewsArticleを解凍し、設定できます。 PopulateWithNewsArticleメソッドを使用してインスタンス化した後に実行するのではなく、ユーザーコントロールがインスタンス化されたときのWebコントロールのプロパティ(現在のように)。