0

我真正想做的就是用相同的项目填充三个不同的组合框。当这段代码在下面执行时,只有一个组合框正在获取值。欢迎任何帮助。谢谢!

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);

        }
4

2 回答 2

2

我在 Telerik 文档中找不到任何明确说明这一点的内容,但似乎 a 的单个实例RadComboBoxItem只能包含在单个 RadComboBox; 你不能RadComboBoxItem在控件之间共享。

文档确实暗示了这一点:RadComboBoxItem有一个“所有者”属性,它是对RadComboBox包含该项目的引用(暗示只能有 1 个所有者)

在幕后,第二个和第三个Add(...)调用很可能首先从组合框中删除它已经存在的项目。

因此,您必须RadComboBoxItem为每个RadComboBox. 这是您可以使用将RadComboBoxItem文本和值作为参数的构造函数的一种方法。

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));
}
于 2012-07-30T23:30:29.300 回答
0

对于那些仍然遇到这个问题的人,我发现的一种方法是将项目添加为字典,然后与数据源绑定。 链接到 Telerik 表格

    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();
于 2018-01-18T15:03:15.830 回答