1

DataTable の DataColumn をValueListUltraGrid 列として使用する方法はありますか?

列のスタイルを に設定していDropDownListます。問題は、何に使用するValueListかです。

ultraGrid1.DisplayLayout.Bands[0].Columns["col"].Style = ColumnStyle.DropDownList;
ultraGrid1.DisplayLayout.Bands[0].Columns["col"].ValueList = ???
4

2 に答える 2

3

BindableValueListを作成します。コンストラクターの 1 つは、データソース、dataMember、displayMember、valueMember、および bindingContextControl のオブジェクトを受け取ります。

ValueList を設定するコード行:

this.ultraGrid1.DisplayLayout.Bands[0].Columns["col"].ValueList = new BindableValueList(dt, "", "displayColumn","valueColumn", this.ultraGrid1);

上記の例では、dt はバインド先の DataTable です。displayColumn と valueColumn は、ドロップダウンの表示部分と値部分として使用する列のキーになります。DataSet にバインドしていて、最初のテーブル以外のテーブルにバインドする場合は、2 番目のパラメーターを使用して、バインド先のテーブルの名前を渡します。

于 2013-03-13T16:07:21.527 に答える
0

これは役立つかもしれません。これは、DataTable、ValueList の Key プロパティの値、および ValueList のリストとして使用するフィールドの名前を受け取り、UltraGridColums の 1 つに設定する値リストを返す簡単な手順です。

    public ValueList DataTableToValueList(DataTable dt, string vlKey, string fieldName)
    {
        ValueList vl = new ValueList();
        if (!string.IsNullOrEmpty(vlKey)) vl.Key = vlKey;
        foreach (DataRowView r in dt.DefaultView)
            vl.ValueListItems.Add(r[fieldName]);
        return vl;
    }

このように使用します (おそらく InitializeLayout イベントで)

    grd.DisplayLayout.Bands[0].Columns["col"].ValueList = 
                    DataTableToValueList(dtCustomers,"vlCustomer", "CustomerName");
于 2013-03-12T21:42:22.350 に答える