RadComboBox将项添加到顶部

时间:2011-07-08 14:10:21

标签: c# asp.net telerik

我正在尝试将项目添加到下拉列表的顶部。我正在使用ItemTemplates,所以我正在做数据绑定并尝试在顶部添加一个读取

[ ] All Profiles

我能够添加它,但是它覆盖了实际数据的绑定,所以当我添加它时,现在只有[ ] 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 个答案:

答案 0 :(得分:8)

在您的示例中,您将使用1项列表覆盖DataSourceObject。

您应在DataBind电话后“手动”添加项目:

 myCombo.Items.Insert(0, 
       new Telerik.Web.UI.RadComboBoxItem { Text = "All Profiles", Value = "1" }
    );
 myCombo.SelectedIndex = 0;

答案 1 :(得分:0)

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

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