データベースに、さまざまなコントロールを含むテーブルがあります。私の Page_Init メソッドでは、渡されるセッション変数に基づいて適切なコントロールをロードする必要があります。これを行うには、if..else ステートメント全体を使用するよりも良い方法はありますか? 15 から 20 の異なるシナリオが考えられるので、20 の if..else ステートメントを書きたくありません。どんな助けでも大歓迎です!
3 つの列 (ID、名前、説明) を持つ「値」というタイトルの DataTable:
ID | Name | Description
-------------------
1 | A | First
2 | B | Second
3 | C | Third
そして、ここに私のコードがあります:
ControlOne c1;
ControlTwo c2;
ControlThree c3;
protected void Page_Init(object sender, EventArgs e)
{
DataSet DS = Client.GetInformation(Session["Number"].ToString());
DataRow DR = DS.Tables["Value"].Rows[0];
if (DR["Name"].ToString() == "A" && DR["Description"].ToString() == "First")
{
c1 = (ControlOne)LoadControl("~/ControlOne.ascx");
panel1.Controls.Add(c1);
}
else if (DR["Name"].ToString() == "B" && DR["Description"].ToString() == "Second")
{
c2 = (ControlTwo)LoadControl("~/ControlTwo.ascx");
panel1.Controls.Add(c2);
}
else if (DR["Name"].ToString() == "C" && DR["Description"].ToString() == "Third")
{
c3 = (ControlThree)LoadControl("~/ControlThree.ascx");
panel1.Controls.Add(c3);
}
else if... //lists more scenarios here..
}