[英]Use an array to populate a listbox?
我正在工作的網站將包含一個下拉列表,其中顯示了許多原因代碼。
是否可以使用從自定義類派生的數組填充下拉列表?
像這樣:
ASPX頁面
<asp:DropDownList ID="ddlReasonsWhy" runat="server"></asp:DropDownList>
背后的ASPX代碼
protected void Page_Load(object sender, EventArgs e)
{
//instantiate custom class
Class1 reasonsList = new Class1();
//populate reasons list
this.ddlReasonsWhy.Items.Add(reasonsList.getReasons);
自定義類
public string[] getReasons()
{
string[] Reasons;
Reasons[0] = "test";
Reasons[1] = "test2";
Reasons[2] = "test3";
return Reasons;
}
UPDATE1:
多虧了答案和這個堆棧鏈接,我的最終解決方案類似於Ahmet和絲滑的答案。
類
public List<ListItem> getRejectReasons()
{
List<ListItem> reasons = new List<ListItem>();
reasons.Add(new ListItem("Select Value", "0"));
reasons.Add(new ListItem("Red", "1"));
reasons.Add(new ListItem("Green", "2"));
return reasons;
}
背后的代碼
//instantiate custom class
Class1 reject = new Class1();
this.ddlReasonsWhy.DataSource = reject.getRejectReasons();
this.ddlReasonsWhy.DataBind();
-編輯:
我注意到您特別想綁定到數組。 我不認為這是可能的(可能是錯誤的)。 我將下面的示例留給自定義類如何使用,也許有用,也許沒有用。 希望其他人可以更直接地回答您。
-舊:
當然是這樣的:
ddlList.DataSource = yourDataSource;
ddlList.DataTextField = "DisplayProperty";
ddlList.DataValueField = "PropertyForValue";
ddlList.DataBind();
但是請注意,在您的示例中,您尚未發布該類,而是已發布了一個方法。 在有關“ yourDataSource”的示例中,應為:
List<YourObjects> yourDataSource = new List<YourObjects>();
使用ListItem代替字符串,並使用Addrange進行添加
編輯:getReasons不是變量,所以使用getReasons()
ASPXPAGE
<asp:DropDownList ID="ddlReasonsWhy" runat="server"></asp:DropDownList>
背后的ASPX代碼
protected void Page_Load(object sender, EventArgs e)
{
//instantiate custom class
Class1 reasonsList = new Class1();
//populate reasons list
this.ddlReasonsWhy.Items.AddRange(reasonsList.getReasons());
}
自定義類
public ListItem[] getReasons()
{
ListItem[] Reasons;
Reasons[0] = "test";
Reasons[1] = "test2";
Reasons[2] = "test3";
return Reasons;
}
(未試)
this.ddlReasonsWhy.DataSource = reasonsList.getReasons;
this.ddlReasonsWhy.DataBind();
只是一個想法,但是如何:
this.ddlReasonsWhy.Items.Add(reasonsList.getReasons().Select(r => new ListItem(r)));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.