簡體   English   中英

如何列出RadComboBox為空的項目

[英]How to list items with an empty for RadComboBox

我有一個RadComboBox。 我用返回例如{Stack,Over,Flow,StackOverFlow}的函數填充它。當我單擊RadCombobox時,將列出項目。

我想把空元素放在第一位。

我嘗試執行以下操作:

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" }

使用第一選擇,在調用DataBind()之前添加RadComboBox1.AppendDataBoundItems = true 這意味着在從數據綁定添加項目之前,不會清除現有項目。 如果需要,您將需要事先手動清除項目:

RadComboBox1.Items.Clear();
RadComboBox1.ClearSelection();

設置RadComboBox DataSource屬性時,它將清除RadComboBox.Items中的所有項目,然后遍歷設置為它的IEnumerable對象,並將它們添加到items集合中。 您可以使用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";

盡管通常在這種情況下更改您的收藏集不是一個好主意(后例)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM