我有一个RadComboBox。我用一个函数填充它,该函数在我单击RadCombobox时返回{Stack,Over,Flow,StackOverFlow},表示列出了项目。
我想把空元素放在第一位。
我试着做了下面的事情:
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"}
发布于 2012-10-16 04:09:20
使用您的第一选择,在调用DataBind()之前添加RadComboBox1.AppendDataBoundItems = true。这意味着在从数据绑定中添加项之前,它不会清除现有项。如有必要,您需要提前手动清除这些项目:
RadComboBox1.Items.Clear();
RadComboBox1.ClearSelection();发布于 2012-10-16 04:13:07
当您设置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";尽管通常在这种情况下改变你的集合(后一个例子)并不是一个好主意。
https://stackoverflow.com/questions/12902747
复制相似问题