RadComboBox在顶部添加一个项目

5

我想在下拉菜单的顶部添加一项。我正在使用ItemTemplates,所以我正在进行数据绑定,并尝试在顶部添加一个读取的选项。

[ ] All Profiles

我已经添加了它,但它覆盖了实际数据的绑定,因此当我现在添加这个时,只有[ ]所有个人资料在那里,而没有真正的绑定数据。我做错了什么?
顺便说一下,我是C#的新手 :)
谢谢
  public void BindData()
{
    myCombo.DataSource = myDbConnection.GetValues();
    myCombo.DataTextField = "Name";
    myCombo.DataValueField = "ID";
    myCombo.DataBind();
    var tempProfiles = new[] { new { Name = "All Profiles", ID = "1" } };
    myCombo.DataSource = tempProfiles;
    myCombo.DataBind();

}

<telerik:RadComboBox ID="myCombo" EmptyMessage="All Types" runat="server" Width="200px">
     <ItemTemplate>
       <div onclick="StopPropagation(event)">
         <asp:CheckBox runat="server" ID="chk1" onclick="onCheckBoxClick(this)"/>
              <asp:Label runat="server" ID="lblProfile" AssociatedControlID="chk1">
                  <%# Eval("Name") %>
               </asp:Label>
             </div>
            </ItemTemplate>
            </telerik:RadComboBox> 
2个回答

10
在您的示例中,您正在使用包含一个项目的列表覆盖您的DataSourceObject。
您应该在调用DataBind之后手动添加该项:
 myCombo.Items.Insert(0, 
       new Telerik.Web.UI.RadComboBoxItem { Text = "All Profiles", Value = "1" }
    );
 myCombo.SelectedIndex = 0;

我尝试了这个,但它告诉我以下内容:'Telerik.Web.UI.RadComboBoxItemCollection.Insert(int, Telerik.Web.UI.RadComboBoxItem)' 的最佳重载方法匹配有一些无效的参数。 - user710502
所以,只需尝试使用正确的RadComboBoxItem属性名称:new Telerik.Web.UI.RadComboBoxItem { ... - splattne
好的,我尝试了一下,它确实显示了复选框,当点击时字符串显示为“所有配置文件”,但问题是在ComboBox中它显示了复选框,标签为空,这个标签在ItemTemplate中...我该如何传递项目模板的文本,以便它显示复选框和标签?-抱歉我有点新手 :) 以上是发布的代码 - user710502
你需要设置正确的属性,我猜它们应该是 TextValue。我会进行研究并在后面编辑我的回答。 - splattne

0

如果您在绑定模式下工作,则所有数据都应来自数据源。

我通常的做法是在数据源中添加一个额外的元素,其ID为0或int.MaxValue,具体取决于排序顺序和我想要显示它的位置。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接