首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何列出RadComboBox为空的项目

如何列出RadComboBox为空的项目
EN

Stack Overflow用户
提问于 2012-10-16 03:35:52
回答 2查看 6.4K关注 0票数 0

我有一个RadComboBox。我用一个函数填充它,该函数在我单击RadCombobox时返回{Stack,Over,Flow,StackOverFlow},表示列出了项目。

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

我试着做了下面的事情:

代码语言:javascript
复制
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}。

当我写下面的代码时

代码语言:javascript
复制
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}。

但是我没有得到我想要的结果。

设计方面如下所示。

代码语言:javascript
复制
<telerik:RadComboBox ID="RadComboBox1" runat="server" Width="120px" MarkFirstMatch="true" Filter="Contains"></telerik:RadComboBox>

我该怎么做呢?

我想列出{ " ""Stack""Over""Flow""StackOverFlow"}

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-16 04:09:20

使用您的第一选择,在调用DataBind()之前添加RadComboBox1.AppendDataBoundItems = true。这意味着在从数据绑定中添加项之前,它不会清除现有项。如有必要,您需要提前手动清除这些项目:

代码语言:javascript
复制
RadComboBox1.Items.Clear();
RadComboBox1.ClearSelection();
票数 3
EN

Stack Overflow用户

发布于 2012-10-16 04:13:07

当您设置RadComboBox DataSource属性时,它将清除RadComboBox.Items中的所有项,然后遍历设置为它的IEnumerable对象,并将它们添加到items集合中。在您的示例中,您可以使用radComboBox.Items.Add()手动添加所有项目。

代码语言:javascript
复制
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列表)。

代码语言:javascript
复制
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";

尽管通常在这种情况下改变你的集合(后一个例子)并不是一个好主意。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12902747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档