Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# RadComboBox选择的值错误_C#_Asp.net_.net_Telerik_Radcombobox - Fatal编程技术网

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;