Web ユーザー コントロールの page_load 関数によって入力されるOrderDefinition.ascx
ドロップダウン リスト ( ) を持つWeb ユーザー コントロール ( ) があります。ddl_CustomerCode
public void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ddl_CustomerCode.DataSource = OrderDefinitionData.GetCustomers();
ddl_CustomerCode.DataTextField = "CustomerCode";
ddl_CustomerCode.DataValueField = "CustomerName";
ddl_CustomerCode.DataBind();
}
}
私のdefault.aspxページで、このWebユーザーコントロールを動的に追加します
Control x = LoadControl("Controls/OrderDefinition.ascx");
Panel1.Controls.Add(x);
default.aspx からこの Web ユーザー コントロールにパラメーターを渡したいのですが、使用するセッションまたはビューステートまたはキャッシュを使用するというアイデアを思いつきました。だから今、私のdefault.aspxは次のようになります
Session["myParam"] = "customerNo1";
Control x = LoadControl("Controls/OrderDefinition.ascx");
Panel1.Controls.Add(x);
そして、私のPage_Loadは次のようになります
public void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string myParam = Session["myParam"];
ddl_CustomerCode.DataSource = OrderDefinitionData.GetCustomers(myParam);
ddl_CustomerCode.DataTextField = "CustomerCode";
ddl_CustomerCode.DataValueField = "CustomerName";
ddl_CustomerCode.DataBind();
}
}
問題は、上記のコーディング方法がよくわからないことです。このアーキテクチャを信頼する必要がありますか? これがパラメーターを Web ユーザー コントロールに渡す正しい方法であるかどうかを明確にしてください。