2009-08-04 1 views
0

을 selectedIndexChange.내가이 HTMLSelect 요소를 가지고 난 선택의 인덱스가 변경 될 때 자바 스크립트 함수를 호출을 시도하셨습니다하고 C#</p> <p>와 ASP.NET을 사용하고

riskFrequencyDropDown.Attributes.Add("onchange", "updateRiskFrequencyOfPointOnMap(" + riskFrequencyDropDown.ID.Substring(8) + "," + riskFrequencyDropDown.SelectedValue +");"); 

을하지만 내 페이지에 자바 스크립트 함수를 호출하지 않습니다

riskFrequencyDropDown 동적 뒤에 시도 C# 코드에서 생성됩니다. 매개 변수를 제거하면 제대로 작동하지만 적절한 기능을 보장하기 위해 이러한 매개 변수를 전달해야합니다.

이 문제에 어떤 통찰력이 훨씬

답변

4

이 매개 변수가 숫자 또는 영숫자 감상 할 수있다? 그들이 문자를 포함하고 있다면, 당신은 자바 스크립트에서 그들을 인용해야합니다. 아래에 작은 따옴표를 추가하십시오.

riskFrequencyDropDown.Attributes.Add("onchange", 
      "updateRiskFrequencyOfPointOnMap('" 
        + riskFrequencyDropDown.ID.Substring(8) 
        + "','" 
        + riskFrequencyDropDown.SelectedValue +"');"); 
0

tvanfosson 님의 답변이 질문에 대답했습니다. 당신의 C#에서

저자 간단한 자바 스크립트 : 또 다른 고려해야 할 옵션 (즉, 다시 고통에서 당신을 유지할 수)

riskFrequencyDropDown.Attributes.Add("onchange", 
      "updateRiskFrequencyOfPointOnMap(this);"); 

그리고, 자바 스크립트 함수 자체 (즉,이 onchange를 호출됩니다) 내부 , 드롭 다운 개체에서 필요로하는 값을 가져 :

function updateRiskFrequencyOfPointOnMap(dropDown) { 
    var riskFrequencyId = dropDown.ID.Substring(8); 
    var riskFrequencyValue = dropDown.SelectedValue; 
    // etc 
} 

이 디자인에 덜 명백한 혜택 : 당신이 이제까지 드롭 다운 개체를 사용하는 방법을 변경하는 경우 (하위 문자열 (6) 하위 문자열 대 (8) 어쩌면), 너 d C#을 변경하지 않아도됩니다. 자바 스크립트 만 변경하면됩니다 (한 곳에서만 가능).

0

나는 랜스의 답변을 사용하는 것이 좋습니다 것 따옴표

riskFrequencyDropDown.Attributes.Add("onchange",string.Format("updateRiskFrequencyOfPointOnMap('{0}','{1}');",riskFrequencyDropDown.ID.Substring(8),riskFrequencyDropDown.SelectedValue)); 
0

와 함께 및 String.format를 제안합니다. 이것은 attribute.add가 호출 될 때 선택된 값을 전송하면 onchange가 선택된 값이 무엇이든간에 사용하기 때문입니다.

기본적으로 ddl에 "One", "Two", "Three"가 포함되어 있고 "One"이 선택되어 있습니다. ddl onchange가 호출 될 때마다 updateRiskFrequencyOfPointOnMap 선택한 값 매개 변수에 "1"이 포함됩니다 ("3"이 선택되어 있어도).

그게 의도 한 행동이 선택한 값으로 무엇인가를하는 경우입니다.