我有一個數據庫中包含一堆不同的控件的表。在我的Page_Init方法中,我需要根據正在傳入的Session變量加載適當的控件。是否有更好的方法來完成此操作,然後使用一大堆if..else語句?我有大約15到20個不同的場景,所以我不想寫20個if..else語句。任何幫助是極大的讚賞!替代if..else語句
DataTable的題爲 「值」 有三列:(ID,名稱,描述):
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..
}
你的意思是一個switch語句? –
使用字符串映射到類型。 –
如何連接串並使用開關盒。 –