2012-02-09 2 views
0

내 웹 응용 프로그램에 드롭 다운 목록과 텍스트 상자가 있습니다. 드롭 다운 목록에서 특정 값의 텍스트 상자를 사용하지 않도록 설정하려고합니다. 드롭 다운 목록의 selectedIndexChanged 이벤트에 대한 코드를 작성했습니다. 드롭 다운 목록의 AutoPostBack 속성을 true로 설정했습니다.드롭 다운 목록의 SelectedIndex 속성

그러나 응용 프로그램을 실행하고 드롭 다운에서 값을 선택하면 갑자기 초기 값으로 변경됩니다. 따라서 항상 SelectedIndex 값은 0이됩니다. 이것으로 무엇을 할 수 있습니까?

+0

코드 .. –

답변

0

onPageLoad 이벤트의 초기 드롭 다운 목록에서는 다시 게시되는지 확인하고 다시 게시하지 않는지 확인해야합니다.

protected void OnLoad(object sender, EventArgs e) 
{ 
    if (!this.IsPostBack) 
    { 
     // init dropdownlist here 
    } 
} 
+0

이 규칙을 직접 작성하는 것이 좋습니다. 동적으로 생성하거나 초기화 할 때마다 (예 : 채우기, 속성 설정) 서버 컨트롤, OnInit 이벤트 내에서 그렇게하려면 최선을 다하고 항상 (다시 게시 상태에 관계없이) 수행하십시오. OnLoad 이벤트의 목적은 이미로드 된 컨트롤을 조작하는 방법을 코더에 제공하는 것입니다.이로드는 OnInit 내에서 발생해야합니다. –

0

달성하기 위해 포스트 백을 할 때 과도하고 느립니다. 해당 드롭 다운에서 특정 옵션을 선택하면 텍스트 상자를 비활성화하려면 client-script (javascript)를 사용해야합니다. 일반 js 또는 jquery를 사용하는지 여부에 따라 구현이 달라집니다.

0

텍스트 상자 클라이언트 측을 매우 쉽게 비활성화 할 수 있으므로 드롭 다운 목록에 AutoPostBack 속성을 추가하는 이유는 무엇입니까?

이 속성을 추가하여 다른 작업을 수행하려면 requirment별로 최상의 답변을 제공 할 수 있도록 자세한 내용을 제공하십시오.

은 당신이 코드는 아래에 주어진 따를 수 클라이언트 측을 해제 만들려면 :

HTML :

<select name="ddlSample" id="ddlSample"> 
    <option value="1">Enable text box</option> 
    <option value="2">Disable text box</option> 
</select> 
<br /> 
<input name="txtCode" type="text" id="txtCode" /> 

JQuery와 : 필요 예에 의한

$("#ddlSample").change(function(){ 
    if($(this[this.selectedIndex]).val()=="1") 
    { 
     $("#txtCode").attr("disabled",false); 
     $("#txtCode").focus();  
    }  
    else 
    { 
     $("#txtCode").attr("disabled",true); 
    }  
}); 
관련 문제