繁体   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