ASP.NET 2005에서 JScript를 사용하고 있습니다. 확인란과 드롭 다운 목록이있는 페이지가 있습니다. 확인란을 선택하면 드롭 다운이 비활성화됩니다. 페이지를 다시 게시하는 동안이 동작을 유지해야합니다. 다음과 같이 자바 스크립트 함수를 사용하고 있습니다.ASP.NET에서 드롭 다운을 사용하지 않도록 설정하는 자바 스크립트
if((chkOwner[1].checked==true))
{
document.getElementById(ddlClientID).disabled=true;
document.getElementById(ddlClientID).className = "form-disabled";
document.getElementById(ddlClientID).selectedIndex = 0;
}
else
{
document.getElementById(ddlClientID).disabled=false;
document.getElementById(ddlClientID).className = "form-input";
document.getElementById(ddlClientID).selectedIndex = 0;
}
거의 작동합니다. 그러나 포스트 백 (확인란을 선택하지 않은 경우) 후에는 드롭 다운 선택이 유지되지 않습니다. [제로 인덱스의 값으로]
어쨌든 해결책은 마지막 줄을 제거하는 것입니다. 즉, else 부분에서 selectedIndex = 0을 제거하는 것입니다.
하지만 내가 그렇게하면 드롭 다운 (체크 박스가 선택된 경우)이 비활성화되면 포스트 백 후에 작동하지 않습니다.
도와 주시겠습니까?
추가 정보 : 각 페이지로드시이를 확인하기 위해 ClientScript.RegisterStartupScript를 사용하고 있습니다.
감사
Lijo
--CODE ----- 다음은 내가 노력하고 있습니다 것입니다. (이것은 내가 지금 만든 샘플 응용 프로그램입니다. 그것은이는 내가 달성하기 위해 노력하고 무엇을 표시 할 수 있습니다. 작동하지 않습니다.)
function ManageInputsFor()
{
if((document.getElementById(chbx).checked==true))
{
document.getElementById(ddlClientID).disabled=true;
document.getElementById(ddlClientID).className = "form-disabled";
document.getElementById(ddlClientID).selectedIndex = 0;
}
else
{
document.getElementById(ddlClientID).disabled=false;
document.getElementById(ddlClientID).className = "form-input";
document.getElementById(ddlClientID).selectedIndex = 0;
}
}
protected void Page_Load(object sender, EventArgs e)
{
ClientScript.RegisterClientScriptBlock(Page.GetType(), "chbx", @"<script language=""javascript"" type=""text/javascript"">var chbx ='" + CheckBox1.ClientID + "'</script>");
ClientScript.RegisterClientScriptBlock(Page.GetType(), "ddl", @"<script language=""javascript"" type=""text/javascript"">var ddlClientID ='" + DropDownList1.ClientID + "'</script>");
ClientScript.RegisterStartupScript(Page.GetType(), "onLoadCallForManageInputs", @"<script language=""javascript"" type=""text/javascript"">ManageInputsFor();</script>");
CheckBox1.Attributes.Add("onclick", "ManageInputsFor();");
}
Mhhh, 나는 거의 가지고 있지만 .. "현명한 해결책은 마지막 줄을 제거하는 것입니다. 즉, else 부분에서 selectedIndex = 0을 제거하는 것입니다." 그건 사실이 아니야. 이 JS 함수를 사용하는 곳에 코드를 붙여 넣을 수 있습니까? –
안녕하세요 클라우디오, 위의 업데이트 된 질문을 참조하십시오. – Lijo