我真正想做的就是用相同的项目填充三个不同的组合框。当此代码执行时,只有一个组合框获取值。欢迎任何帮助。谢谢!
for (int i = 0; i < 100; i++)
{
RadComboBoxItem li = new RadComboBoxItem();
li.Text = i.ToString();
li.Value = i.ToString();
InputPairThousandValueComboBox.Items.Add(li);
InputUsertThousdandValueComboBox.Items.Add(li);
InputCurrentlyListedThousdandComboBox.Items.Add(li);
}
答案 0 :(得分:2)
我在Telerik文档中找不到明确说明这一点的内容,但似乎RadComboBoxItem
的单个实例只能包含在单 RadComboBox
中;您无法在控件之间共享RadComboBoxItem
。
The docs提示:RadComboBoxItem
有一个'所有者'属性,该属性是对包含该项目的RadComboBox
的引用(暗示只有一个所有者)
在封面下,第二个&amp;第三次Add(...)
次调用最有可能首先从已经存在的组合框中删除该项目。
因此,您必须为每个RadComboBoxItem
创建单独的RadComboBox
。这是使用RadComboBoxItem
构造函数执行此操作的一种方法,该构造函数将text和value作为参数。
for (int i = 0; i < 100; i++)
{
var val = i.ToString();
InputPairThousandValueComboBox.Items.Add(new RadComboBoxItem(val, val));
InputUsertThousdandValueComboBox.Items.Add(new RadComboBoxItem(val, val));
InputCurrentlyListedThousdandComboBox.Items.Add(new RadComboBoxItem(val, val));
}
答案 1 :(得分:0)
对于那些仍然遇到此问题的人,我发现的一种方法是将项目添加为字典,然后与数据源绑定。 link to telerik form
Dictionary<string, string> comboSource = new Dictionary<string, string>();
comboSource.Add("", "");
comboSource.Add(user.Rs.GetString("txtDate"), "phDate");
comboSource.Add(user.Rs.GetString("txtBranch"), "mhBranch");
comboSource.Add(user.Rs.GetString("txtDepartmentCode"), "mhDepartmentCode");
comboSource.Add(user.Rs.GetString("txtLocationCode"), "mhLocationCode");
comboSource.Add(user.Rs.GetString("txtModelCode"), "mhModel");
comboSource.Add(user.Rs.GetString("txtProductCode"), "phProductCode");
comboSource.Add(user.Rs.GetString("txtShiftCode"),"shShiftCode");
comboSource.Add(user.Rs.GetString("txtSubcategory"),"phSubcategory");
cboSort1.DataSource = cboSort2.DataSource = cboSort3.DataSource = cboSort4.DataSource = comboSource;
cboSort1.DataTextField = cboSort2.DataTextField = cboSort3.DataTextField = cboSort4.DataTextField = "Key";
cboSort1.DataValueField = cboSort2.DataValueField = cboSort3.DataValueField = cboSort4.DataValueField = "Value";
cboSort1.DataBind();
cboSort2.DataBind();
cboSort3.DataBind();
cboSort4.DataBind();