我正在尝试将项目添加到下拉列表的顶部。我正在使用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>
答案 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的数据源中添加一个额外的元素,具体取决于排序顺序和我想要显示它的位置。