使用数组填充列表框?

我正在处理的网站将包含一个下拉列表,其中显示了许多原因代码。

是否可以使用派生自定义类的数组填充下拉列表?

像这样的东西:

ASPX

 

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 getRejectReasons() { List reasons = new List(); 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(); 

使用ListItem代替字符串 ,使用Addrange进行添加

编辑:getReasons不是变量所以使用getReasons()

ASPXPAGE

  

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; } 

– 编辑:

我注意到你特意想绑定到一个数组。 我不相信是可能的(可能是错的); 我在下面举例说明如何为自定义类做这个,也许它是有用的,也许不是。 希望别人能更直接地回答你。

– 旧:

当然是这样的:

 ddlList.DataSource = yourDataSource; ddlList.DataTextField = "DisplayProperty"; ddlList.DataValueField = "PropertyForValue"; ddlList.DataBind(); 

但请注意,在您的示例中,您尚未发布该类,您已发布了一种方法。 在关于’yourDataSource’的示例中应该是这样的:

 List yourDataSource = new List(); 

(另)

 this.ddlReasonsWhy.DataSource = reasonsList.getReasons; this.ddlReasonsWhy.DataBind(); 

只是一个想法,但如何:

 this.ddlReasonsWhy.Items.Add(reasonsList.getReasons().Select(r => new ListItem(r)));