0

RadComboBox を 1 つ持っています。たとえば {Stack, Over, Flow, StackOverFlow} を返す関数を入力します。RadCombobox をクリックすると、項目が一覧表示されます。

そして、空の要素に1位を与えたいです。

そして、私は以下をやろうとしました:

var stack= GetItems(SiteId);
RadComboBox1.Items.Add(new RadComboBoxItem("", "0"));
RadComboBox1.DataSource = stack;  

RadComboBox1.DataTextField = "Name";
RadComboBox1.DataValueField = "Id";
RadComboBox1.DataBind();

RadComboBox1.AllowCustomText = false;

変更はありません。{Stack、Over、Flow、StackOverFlow} のみがリストされます。

以下のコードを書くと

var stack= GetItems(SiteId);

RadComboBox1.DataSource = stack;  

RadComboBox1.DataTextField = "Name";
RadComboBox1.DataValueField = "Id";
RadComboBox1.DataBind();
RadComboBox1.Items.Add(new RadComboBoxItem("xyz", "0"));
RadComboBox1.AllowCustomText = false;

{Stack、Over、Flow、StackOverFlow、xyz} のみがリストされます。

しかし、私が望む結果は得られません。

そしてデザイン面は以下。

<telerik:RadComboBox ID="RadComboBox1" runat="server" Width="120px" MarkFirstMatch="true" Filter="Contains"></telerik:RadComboBox>

どのようにできるのか?

" " { , "Stack", "Over", "Flow", "StackOverFlow"}をリストしたい

4

2 に答える 2

3

最初の選択肢を使用して、RadComboBox1.AppendDataBoundItems = trueを呼び出す前に追加しますDataBind()。これは、データ バインドから項目を追加する前に、既存の項目を消去しないことを意味します。必要に応じて、事前にアイテムを手動でクリアする必要があります。

RadComboBox1.Items.Clear();
RadComboBox1.ClearSelection();
于 2012-10-15T20:09:19.987 に答える
1

RadComboBox DataSourceプロパティを設定すると、RadComboBox.Items内のすべてのアイテムがクリアされ、それに設定されているIEnumerableオブジェクトを反復処理して、アイテムコレクションに追加します。あなたの場合、radComboBox.Items.Add()を使用してすべてのアイテムを手動で追加できます。

var stack= GetItems(SiteId);
//Add your empty item. 
RadComboBox1.Items.Add(new RadComboBoxItem("", "0")); 

//Add all the other items
foreach(var item in stack)
{
    RadComboBox1.Items.Add(new RadComboBoxItem(item.Name, item.Id))
}  

RadComboBox1.DataTextField = "Name"; 
RadComboBox1.DataValueField = "Id";

または、最初に空のアイテムをコレクションに追加してから、それをRadComboBoxにバインドすることもできます(スタックはStackItemのリストであると想定しています)

List<StackItem> stack = GetItems(SiteId);
//Add your empty item. 
stack.Insert(0, new StackItem(){Name = "", Id = 0});

//Set the DataSource
RadComboBox1.DataSource = stack;

RadComboBox1.DataTextField = "Name"; 
RadComboBox1.DataValueField = "Id";

通常、このような場合にコレクション(後の例)を変更することはお勧めできません。

于 2012-10-15T20:13:07.050 に答える