我已将一个集合绑定到ultracombo
,并且我已指定value member
和display member
。这些集合有很多列,现在我只需在显示中显示一列,将一列分配给value member
。现在我看到集合中的所有columns
都显示为multicolumn
。
//代码
cboUltra.ValueMember = "LookupValue"
cboUltra.DisplayMember = "LookupValueDescription"
cboUltra.DataSource = LoadLookupDetails(Field.LookUpCode)
UltraGridRow.Cells("FieldValue").ValueList = cboUltra
我怎样才能做到这一点?
答案 0 :(得分:7)
在C#中,您可以尝试以下方法: - >添加" ultraCombo1"当你超级组合...在表单加载时尝试以下代码:
private void Form1_Load(object sender, EventArgs e)
{
// Fill data in ultracombo datasource
DataTable dtt = new DataTable();
dtt.Columns.Add("ID", typeof(int));
dtt.Columns.Add("Name", typeof(string));
dtt.Columns.Add("Age", typeof(int));
dtt.Columns.Add("Address", typeof(string));
dtt.Columns.Add("Sex", typeof(string));
dtt.Rows.Add(new object[] {1,"Name1",20,"Address 1","Male"});
dtt.Rows.Add(new object[] { 2, "Name2", 21, "Address 2", "Male" });
dtt.Rows.Add(new object[] { 3, "Name3", 22, "Address 3", "Female" });
dtt.Rows.Add(new object[] { 4, "Name4", 23, "Address 4", "Male" });
dtt.Rows.Add(new object[] { 5, "Name5", 24, "Address 5", "Female" });
ultraCombo1.DataSource = dtt;
ultraCombo1.DataBind();
//---------------------------------
// hide all but show "ID" and "Name" only
ultraCombo1.ValueMember = "ID";
ultraCombo1.DisplayMember = "Name";
for (int i = 0; i < ultraCombo1.Rows.Band.Columns.Count; i++)
{
ultraCombo1.Rows.Band.Columns[i].Hidden = true;
}
ultraCombo1.Rows.Band.Columns["ID"].Hidden = false;
ultraCombo1.Rows.Band.Columns["Name"].Hidden = false;
}
您的ultracombo将使用&#34; ID&#34;的值成员填充和'#34;名称&#34;只有..
答案 1 :(得分:2)
UltraCombo将自动生成所有列。您可以在设置数据源之前添加所需的列,并将cboUltra.DisplayLayout.NewColumnLoadStyle设置为NewColumnLoadStyle.Hide,或者您可以通过在InitializeLayout事件中循环遍历它们来隐藏除创建它们之外的所有列。将它们全部设置为隐藏,除了你想要的那个。
您还可以查看UltraComboEditor,因为它只显示一列。这是否适用于您的选项将取决于您在下拉列表中需要哪些功能。
答案 2 :(得分:0)
以下是一种扩展方法,可隐藏DisplayMember
列以外的所有列。
<Extension()>
Public Sub ShowOnlyDisplayMemberColumn(this As UltraCombo)
Dim columnName As String = this.DisplayMember
For Each band As UltraGridBand In this.DisplayLayout.Bands
For i As Integer = 0 To band.Columns.Count - 1
Dim column As UltraGridColumn = band.Columns(i)
If (column.Key = columnName) Then
column.Hidden = False
column.Width = this.Width
Else
column.Hidden = True
End If
Next
Next
End Sub