Asp.net 如何使用所有可能的SerieChartType选项填充下拉框?
我希望在下拉框中填入每个可能的Asp.net 如何使用所有可能的SerieChartType选项填充下拉框?,asp.net,drop-down-menu,asp.net-charts,Asp.net,Drop Down Menu,Asp.net Charts,我希望在下拉框中填入每个可能的系列图表类型,以便我的用户可以选择适当的图表类型 如何遍历SeriesChartType集合(它位于命名空间System.Web.Ui.DataVisualization.Charting)并返回每个可能的选项,以便将其添加到下拉框中 谢谢。foreach(Enum.GetValues中的ChartType(typeof(System.Web.UI.DataVisualization.Charting)) foreach (ChartType in Enum.Get
系列图表类型
,以便我的用户可以选择适当的图表类型
如何遍历SeriesChartType
集合(它位于命名空间System.Web.Ui.DataVisualization.Charting
)并返回每个可能的选项,以便将其添加到下拉框中
谢谢。foreach(Enum.GetValues中的ChartType(typeof(System.Web.UI.DataVisualization.Charting))
foreach (ChartType in Enum.GetValues(typeof(System.Web.UI.DataVisualization.Charting))
{
//Add an option the the dropdown menu
// Convert.ToString(ChartType) <- Text of Item
// Convert.ToInt32(ChartType) <- Value of Item
}
{
//在下拉菜单中添加一个选项
//Convert.ToString(ChartType)您可以在DataBind
事件处理程序中绑定数据:
public override void DataBind()
{
ddlChartType.DataSource =
Enum.GetValues(typeof(SeriesChartType))
.Cast<SeriesChartType>()
.Select(i => new ListItem(i.ToString(), i.ToString()));
ddlChartType.DataBind();
}
下面是一个通用函数:
// ---- EnumToListBox ------------------------------------
//
// Fills List controls (ListBox, DropDownList) with the text
// and value of enums
//
// Usage: EnumToListBox(typeof(MyEnum), ListBox1);
static public void EnumToListBox(Type EnumType, ListControl TheListBox)
{
Array Values = System.Enum.GetValues(EnumType);
foreach (int Value in Values)
{
string Display = Enum.GetName(EnumType, Value);
ListItem Item = new ListItem(Display, Value.ToString());
TheListBox.Items.Add(Item);
}
}
这在VB中对我很有效-我必须实例化一个新的SeriesChartType
实例,它允许我使用[Enum].GetNames
方法
然后,我可以将它们添加到下拉框中,如图所示:
Dim z As New SeriesChartType
For Each charttype As String In [Enum].GetNames(z.GetType)
Dim itm As New ListItem
itm.Text = charttype
ddl_ChartType.Items.Add(itm)
Next
感谢大家的回答。mrK有一个很好的C语言来替代这个VB代码。这是我最初尝试的方法,我认为这在C语言中是有效的,但在VB中TypeOf的工作方式不同,我收到了错误System.Web.UI.DataVisualization.Charting'是一个名称空间,不能用作表达式。
我已经发布了一个在VB中对我有效的nswer,但在C变体中为+1。
Dim z As New SeriesChartType
For Each charttype As String In [Enum].GetNames(z.GetType)
Dim itm As New ListItem
itm.Text = charttype
ddl_ChartType.Items.Add(itm)
Next