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构造函数之一获取数据源、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 并且想要绑定到第一个表以外的表,则可以使用第二个参数传入要绑定到的表的名称。

于 2013-03-13T16:07:21.527 回答
0

这可能会有所帮助。它是一个简单的过程,它接收 DataTable、ValueList 的 Key 属性的值以及用作 ValueList 列表的字段名称,并返回要在 UltraGridColums 中设置的值列表

    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 回答