C# RadComboBox选择的值错误
当我使用C# RadComboBox选择的值错误,c#,asp.net,.net,telerik,radcombobox,C#,Asp.net,.net,Telerik,Radcombobox,当我使用RadComboBox时,我会遇到以下问题: ddl_contactList.Items.Clear(); ddl_contactList.DataSource = ContactList.GetContactListsByDep(year, main_code); ddl_contactList.DataTextField = "list_desc"; ddl_contactList.DataValueField = "list_code"; d
RadComboBox
时,我会遇到以下问题:
ddl_contactList.Items.Clear();
ddl_contactList.DataSource = ContactList.GetContactListsByDep(year, main_code);
ddl_contactList.DataTextField = "list_desc";
ddl_contactList.DataValueField = "list_code";
ddl_contactList.DataBind();
ddl_contactList.Items.Insert(0, new Telerik.Web.UI.RadComboBoxItem("NewList", "-1"));
ddl_contactList.SelectedIndex = 0;
组合框中的项目数始终为
1
!!!尽管数据源包含许多项,所以当我在任何时间尝试获取任何项的选定值时,我总是得到-1
如何获取正确的
selectedvalue
?在数据绑定之前添加NewList
项,并将以下属性添加到RadComboBox
将AppendDataBoundItems设置为True将保留RadComboBox中已存在的项。这允许您将RadComboBox绑定到多个数据源,或同时使用未绑定和绑定模式。
然后将数据源添加到控件中
ddl_contactList.Items.Clear();
ddl_contactList.Items.Insert(0, new Telerik.Web.UI.RadComboBoxItem("NewList", "-1"));
ddl_contactList.SelectedIndex = 0;
ddl_contactList.DataSource = ContactList.GetContactListsByDep(year, main_code);
ddl_contactList.DataTextField = "list_desc";
ddl_contactList.DataValueField = "list_code";
ddl_contactList.DataBind();
单独添加它们而不是绑定如何
var items = ContactList.GetContactListsByDep(year, main_code);
foreach(var item in items)
{
ddl_contactList.Items.Add(new RadComboBoxItem(item.list_desc, item.list_code));
}
ddl_contactList.Items.Insert(0, new RadComboBoxItem("NewList", "-1"));
ddl_contactList.SelectedIndex = 0;
我认为您应该在将项用作数据源之前将其添加到集合中…当我在(!page.IsPostBack)中调用它时,我收到以下客户端错误:
没有指定的数据源,无法完成回调请求
让u set AppendDataBoundItems=true您还可以执行以下方法,受保护的void RadComboBox1\u DataBound(objectsender,EventArgs e){var combo=(RadComboBox)sender;combo.Items.Insert(0,new RadComboBoxItem(“选择国家”,string.Empty));}我这样做了,它工作了,但是当有很多条目时,<代码> COCBO框变得如此繁重!!你可能需要考虑使用OnITEMsS。当用户开始在组合框中键入时,它会通过Ajax加载组合框项。
var items = ContactList.GetContactListsByDep(year, main_code);
foreach(var item in items)
{
ddl_contactList.Items.Add(new RadComboBoxItem(item.list_desc, item.list_code));
}
ddl_contactList.Items.Insert(0, new RadComboBoxItem("NewList", "-1"));
ddl_contactList.SelectedIndex = 0;