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 に答える