2012-10-15 3 views
0

하나의 RadComboBox가 있습니다. 예를 들어 {Stack, Over, Flow, StackOverFlow}를 반환하는 함수로 채우기 RadCombobox를 클릭하면 해당 항목이 나열됩니다.RadComboBox에 대해 비어있는 항목을 나열하는 방법

그리고 빈 요소에 대해 첫 번째 장소를주고 싶습니다.

그리고 아래하려고 노력 :

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} 만 나열됩니다.

나는 오직 {스택, 동안, 흐름, 유래, XYZ}이 나열되어 있습니다

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; 

코드

아래로 쓸 때.

그러나 나는 원하는 결과를 얻지 못합니다.

디자인 측면은 아래와 같습니다.

<telerik:RadComboBox ID="RadComboBox1" runat="server" Width="120px" MarkFirstMatch="true" Filter="Contains"></telerik:RadComboBox> 

어떻게하면됩니까?

난 당신이 DataBind()를 호출하기 전에 RadComboBox1.AppendDataBoundItems = true를 추가, 당신의 첫 번째 선택을 사용하여 {" ", "Stack", "Over", "Flow", "StackOverFlow"}

답변

3

을 나열합니다. 즉, 데이터 바인딩에서 항목을 추가하기 전에 기존 항목을 지우지 않습니다. 당신이 RadComboBox 데이터 소스 속성을 설정하면

RadComboBox1.Items.Clear(); 
RadComboBox1.ClearSelection(); 
+0

감사합니다 @ csm8118, 당신은 절대적으로 맞습니다 .. –

1

이 그것으로 설정되어 IEnumerable을 개체를 통해 모든 다음 RadComboBox.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에 결박 먼저 다음 컬렉션에 빈 항목을 추가 할 수는

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"; 

(I 스택 가정 StackItem의 목록입니다) 그러한 경우를 대비하여 컬렉션을 변경하십시오 (후자의 예).

관련 문제