2011-07-08 9 views
4

ドロップダウンの上部にアイテムを追加しようとしています。私はので、私はデータバインドをやって、私はそれを追加することができましたが、それは実際のデータの結合をオーバーライドしているRadComboBox上部にアイテムを追加する

[ ] All Profiles 

を読み込み先頭に1を追加しようとしています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> 

答えて

8

例では、DataSourceObjectを1項目リストで上書きしています。私はこれを試してみましたが、その次は私に言って

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

:「Telerik.Web.UI.RadComboBoxItemCollection.Insert(のための最良のオーバーロードされたメソッドの試合

あなたのDataBind呼び出しの後に「手動」項目を追加する必要がありますint、Telerik.Web.UI.RadComboBoxItem)に無効な引数がいくつかあります。 – user710502

+0

それでは、 'new Telerik.Web.UI.RadComboBoxItem {' ...代わりに、RadComboBoxItemの右のプロパティ名を使用してください。 – splattne

+0

これを試してみましたが、チェックボックスが表示され、クリックすると文字列に "All Profiles問題は、ComboBoxにチェックボックスが表示され、ラベルが空であることです。このラベルはItemTemplate内にあります。アイテムテンプレートのTextを渡すと、チェックボックスが表示され、その隣にラベルが表示されます。 - ごめんなさい、初心者です。 投稿コードは – user710502

0

ありがとうございます。

私が通常やっていることは、ソート順と表示したい位置に応じて、ID 0またはint.MaxValueのデータソースに余分な要素を追加することです。

関連する問題