2

我使用时遇到以下问题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;

  <telerik:RadComboBox ID="ddl_contactList" runat="server" AutoPostBack="True" CausesValidation="False"
            CollapseDelay="0" Culture="ar-EG" ExpandDelay="0" Filter="StartsWith" ItemsPerRequest="10"
            MarkFirstMatch="true" Skin="Outlook" EnableAutomaticLoadOnDemand="True" EmptyMessage="-List name-"
            ShowMoreResultsBox="True" 
            onselectedindexchanged="ddl_contactList_SelectedIndexChanged" AppendDataBoundItems ="true">
    </telerik:RadComboBox>

组合框中的项目数总是1!!! 尽管数据源包含许多项目,所以当我尝试随时获取任何项目的选定值时,我总是得到-1

如何获得正确的selectedvalue

4

2 回答 2

1

如何单独添加它们而不是绑定。

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; 
于 2012-06-21T14:04:55.177 回答
1

在数据绑定之前添加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();
于 2012-06-18T10:39:18.143 回答