2009-05-19 8 views
5

웹 응용 프로그램에서 새로운 Microsoft ASP.NET Ajax ComboBox 컨트롤을 사용하고 프로그래밍 방식으로 선택한 목록 항목을 설정하는 방법을 찾지 못했습니다. 예를 들어 주소를 수락하는 양식과 도시 이름을 수락하는 ComboBox가 있습니다. 사용자가 입력하고 저장하고 주소를 지정하면 ComboBox를 포함하여 양식을 재설정하고 싶습니다. 일반 ASP.NET의 드롭 다운리스트 컨트롤 ASP.NET AJAX의 Combobox - 프로그래밍 방식으로 선택한 항목을 변경할 수 없습니다.

I가 선택한 항목 아래와 같이 재설정 할 수

City.SelectedIndex = -1; 
은 ASP.NET AJAX 콤보 제어 코드 줄을 받아들이

; 페이지가 다시 게시되면 이전에 선택한 값이 계속 선택됩니다. 도움을 주시면 감사하겠습니다.

업데이트 : I합니다 ... 아무 소용이 다음과 같은 노력

City.ClearSelection(); 

답변

3

한 솔루션은 페이지를 두 번로드하거나 업데이트 패널

  Combobox1.ClearSelection() 
      Combobox1.Dispose() 

이 것 지우기 콤보 상자 값에 표시하기 전에 사용이 명령에 따라입니다.

희망이 도움이됩니다. 그것을 찾으러 잠시 나갔다.

0

보십시오 : 당신이 CascadingDropDown에

ComboBox.Text = ""; 
ComboBox.ClearSelection(); 
+0

그냥 해봤 어. 이전에 선택한 값이 그대로 있습니다. 유일한 해결책은 목록을 다시 바인딩하는 것이지만 다른 데이터베이스가 손상되는 것을 피하려고합니다. – jwalkerjr

+0

명확한 방법으로 항목 모음이 있습니까? ComboBox.Items.Clear()? –

+0

예, 목록 항목을 지우지 만 선택한 값이 계속 상자에 표시됩니다. – jwalkerjr

0

을 언급하고 있는가? 그렇다면 CascadingDropDown의 SelectedValue를 null로 설정하십시오.

CascadingDropDown1.SelectedValue = null; 
+1

Tim, 사실 저는 새로운 MS Ajax Control Toolkit의 ComboBox 컨트롤에 대해 이야기하고 있습니다. 아쉽게도 컨트롤의 .SelectedValue 속성을 null로 설정해도 여전히 작동하지 않습니다. 이 시점에서 이것이 컨트롤의 버그라고 확신합니다. 그래도 MS가 확인하길 바래. – jwalkerjr

1

이것은 CodePlex의 미해결 문제입니다. 따라서 버그이기 때문에 패치가 발행 될 때까지 해결책이 없습니다. CodePlex의 issue은 다음과 같습니다. 색인을 설정하려면이 실제로 숨겨에 저장되도록 내가 ""

1

는 일이다 필드에있는 모양입니다. 그래서 그것을 지우기 위해 내가하고있는 것은 이것입니다.

foreach (Control control in cbFeatures.Controls) 
      { 
       if (control is HiddenField) 
        ((HiddenField)control).Value = "0"; 
      } 

이 값은 설정하려는 인덱스의 값이 나와 내게 유용합니다.

0

확인 텍스트 combobox1.SelectedItem.Text = 선택을 취소 DropDownStyle = "드롭" 이 명령을 사용할 때

0

은 다음과 City.ClearSelection() 교체 다음 블로그에 설명 된대로 숨겨진 필드를 취소하여 해결할 수 있습니다

City.Items.Insert(0, ""); 
City.SelectedIndex = 0; 

지금이 목록의 일부 드롭 다운에서 빈 문자열을 넣어 것입니다 텍스트 컨트롤을 빈 문자열로 설정하는 것뿐입니다. 시 Page_Load 이벤트에

City.Items.Remove(""); 

를 사용하여 드롭 다운 목록에서 빈 문자열을 제거하십시오. 이것에 대한

1

* 이것은 2011 년 2 월 18 일 버전 3.5.40412로 아직까지 버그입니다.2 툴킷 *

모든 Google 검색 사용자를 위해이 문제에 대해 발견 된 수정 사항이 없습니다 (숨겨진 컨트롤 찾기, 삭제, 등)

*이 아무리 내가 다른 컨트롤/패널 등 *

combobox.Items.Clear()에서 콤보 상자를 묻혀 얼마나 많은 층 깊이, 나를 위해 작동하지 않습니다;

((TextBox) cmbMachineNum.FindControl ("TextBox")). 텍스트 = "";

+0

감사합니다. @Paul. 이것은 나를 하루 종일 미치게했다. :) –

관련 문제