如何强制telerik radDropDownList显示新添加到数据库?

时间:2016-10-11 07:42:31

标签: c# winforms telerik

我有一个Telerik RadDropDownList来显示database中来自后台更新的表中的城市。我希望每当数据库更新时刷新RadDropDownList,但我找不到任何有用的东西。 我的代码在这里:

private void radDropDownList3_KeyUp(object sender, KeyEventArgs e)
    {
        _result = radDropDownList3.DropDownListElement.Text;
         bool any = radDropDownList3.DropDownListElement.Items.Any(item => item.Text == _result.Trim());
        if (e.KeyCode == Keys.Enter && !any)
        {
            try
            {
                string city = ArToFa(_result);
                using (var bas = new SaleToFreightageEntities())
                {
                    bas.Tariff.Add(new Tariff { City = city });
                    bas.SaveChanges();
                }
                MessageBox.Show(@"item added.");
                tariffBindingSource.ResetBindings(true);
                radDropDownList3.Rebind();
                radDropDownList3.Refresh();
                radDropDownList2.Enabled = false;
                _result = "";
            }
            catch (Exception ex)
            {
                if (ex.GetBaseException().Message.Contains("Cannot insert duplicate key row"))
                    MessageBox.Show(@"duplicated item!", @"", MessageBoxButtons.OK,
                        MessageBoxIcon.Stop, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign);
                _result = "";
            }
        }
    }

2 个答案:

答案 0 :(得分:1)

在插入数据库后,您必须动态地在RadDropDownList中插入此输入的文本。您可以将RadListDataItem添加到RadDropDownList。 使用此代码来实现此目的。此项目将添加到您的控件中,因此您不需要重新绑定它,只有在您确定该位置已添加到db时才添加它。

RadListDataItem dataItem = new RadListDataItem();
dataItem.Text = "enteredText";
this.yourDropDownList.Items.Add(dataItem);

此外,您可以通过在更新db方法之后调用来解决您的问题,该方法再次获取数据源并将其放入下拉列表。

答案 1 :(得分:-1)

你有很多方法 1。制作一个timer.on你的数据库使一个字段命名为_update(true False) 如果您的数据库添加或更新或删除数据,则此字段为true 并在此计时器上检查此字段。如果真的刷新并重新选择数据,则不执行任务 2。你可以做一个线程吗?这个工作也像计时器

如果在计时器上刷新,必须使字段bcoz可能无法选择数据并且都想要刷新。 如果你有问题告诉我