[英]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.