3

SeriesChartTypeユーザーが適切なグラフの種類を選択できるように、ドロップダウン ボックスにそれぞれの可能性を設定したいと考えています。

SeriesChartTypeコレクション (名前空間にあります)を反復処理し、System.Web.Ui.DataVisualization.Charting可能な各オプションを返してドロップダウン ボックスに追加するにはどうすればよいですか?

ありがとう。

4

4 に答える 4

2

SeriesChartTypeこれはVBでうまくいきました-メソッドを使用できるようにするの新しいインスタンスをインスタンス化する必要がありました[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には、このVBコードの優れたC代替手段があります。

于 2011-03-25T16:39:13.710 に答える
1
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
}

これがあなたが探しているものでない場合は、私に知らせてください。

于 2011-03-25T15:51:48.113 に答える
1

DataBindイベント ハンドラーでデータをバインドできます。

public override void DataBind()
{
    ddlChartType.DataSource =
        Enum.GetValues(typeof(SeriesChartType))
            .Cast<SeriesChartType>()
            .Select(i => new ListItem(i.ToString(), i.ToString()));
    ddlChartType.DataBind();
}

SelectedIndexChanged次に、次のようにイベント ハンドラーで選択した値を取得します。

protected void ddlChartType_SelectedIndexChanged(object sender, EventArgs e)
{
    // holds the selected value
    SeriesChartType selectedValue = 
         (SeriesChartType)Enum.Parse(typeof(SeriesChartType),  
                                     ((DropDownList)sender).SelectedValue);
}
于 2011-03-25T16:13:39.763 に答える
0

一般的な関数は次のとおりです。

// ---- 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);
    }
}
于 2011-03-25T16:20:23.463 に答える