2008-11-11 2 views
1

자바를 사용하여 ASP.Net 콤보 상자에 항목을 추가하고 싶습니다. ID (마스터 페이지 없음)를 검색 할 수 있습니다. Javascript에서 콤보 상자에 값을 어떻게 추가 할 수 있습니까? 내 현재 코드는 다음과 같습니다.자바 스크립트를 사용하여 ASP.Net 콤보 상자에 항목을 추가하고 싶습니다.

//Fill the years (counting 100 from the first) 
    function fillvarYear() { 
     var dt = $('#txtBDate').val(); 
     dt = dt.toString().substring(6); 

     var ye = parseInt(dt); 

     //Loop and add the next 100 years from the birth year to the combo 
     for (var j = 1; j <= 100; j++) { 
      ye += 1; //Add one year to the year count 

      var opt = document.createElement("OPTION"); 
      opt.text = ye; 
      opt.value = ye; 
      document.form1.ddlYear.add(opt); 
     } 
    } 

답변

1

은 다시 게시에 값을 확인하려면 아이디어, 이벤트 유효성 검사를 명시 적으로 비활성화해야합니다.

업데이트 패널에 콤보 박스를 배치하면 서버에서 txtBirthDate를 읽고 적절한 데이터를 생성 할 수 있습니다. 그런 다음 상태를 수동으로 보존 할 필요가 없습니다.

0

가능한 해결책을 찾았습니다. 왜 이전 코드가 저에게는 효과가 없었는지 모르겠지만 아래 라인은

document.form1.ddlYear.appendChild (새 옵션 (ye, ye));

1

항상 ASP.NET 컨트롤은 "멋진"것이 아니라 항상 어느 시점에서 표준 HTML 요소가된다는 것을 기억하십시오.

this site을 확인해보십시오. 꽤 좋은 데모와 개요가 있습니다. 그러나 클라이언트 쪽에서 데이터를 변경하는 것은 입니다. 즉, ViewState가 업데이트되지 않으므로 각 요청마다이 작업을 수행해야합니다.

TBH, 당신은 오히려 ASP 콤보보다 HTML 컨트롤 ... 당신은 자바 스크립트를 통해 항목을 변경하는 이유

내가 물어 봐도을 개시 아마 더 나은? 발생되는 이벤트 유효성 검사 예외가 발생합니다 자바 스크립트와 콤보 상자의 값을 변경,

string selectedValue = Request.Params[combobox.UniqueId] 

이 기억하고 일반적으로 나쁜 : (호기심) :

+0

예 ... 콤보 상자의 항목은 방문자가 채우는 숫자 (출생 연도)를 기준으로 생성됩니다. 기본적으로 나는 출생 후 100 년 동안 채워야합니다. 내가 포스트 백없이 경험을 원하기 때문에 (그리고 updatepanel을 사용하고 싶지 않기 때문에) 자바 스크립트를 선택했다. 이제 또 다른 문제가 있습니다 - ASP.Net 코드의 콤보에 설정된 값을 어떻게 볼 수 있습니까? 아이디어가 있으십니까? –

관련 문제