有没有办法可以将DataTable中的DataColumn用作UltraGrid列的ValueList
?
我将列样式设置为DropDownList
。问题是,我对ValueList
使用了什么?
ultraGrid1.DisplayLayout.Bands[0].Columns["col"].Style = ColumnStyle.DropDownList;
ultraGrid1.DisplayLayout.Bands[0].Columns["col"].ValueList = ???
答案 0 :(得分:2)
创建BindableValueList。其中一个Constructors获取数据源的对象,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并希望绑定到第一个表以外的表,则可以使用第二个参数传入要绑定到的表的名称。
答案 1 :(得分: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");