2009-08-03 6 views
0

내가하고 싶은 것은 사용자가 라디오 버튼을 클릭 할 때 JavaScript 루틴을 호출하는 것입니다. 이런 일이 발생하면 사용 가능/사용 불가능으로 설정할 필드가 있습니다. 그러나, 나는 onlick 이벤트를 추가하려고 할 때 내가 예상 오류 "또는 유형의"납니다Html.RadioButton에 OnClick 이벤트 추가

<%=Html.RadioButton("obp17", "57", ViewData.Eval("obpValue17").ToString().Equals("57"), new {@onclick = "Yes()"})%> 

를 입력합니다. 이것은 쉬워야하지만 발견 된 샘플 중 어느 것도 작동하지 않는 것 같습니다. 선두의 "@"는 내가 발견 한 모든 예에서 공통적이지만 다른 것은 빠져있는 것 같습니다.

그렇습니다. "true"를 확인하는 방법이 과잉이지만, 특별한 목적의 코드 생성기로 작성되므로 추가 작업이 필요 없습니다.

의견이 있으십니까?

답변

1

코드에 Yes() 기능이 올바르게 정의되어 있습니까? Yes()을 javacript alert() 함수로 바꿉니다. 그게 작동한다면, 당신이 게시 한 코드 줄은 괜찮습니다.

여기에 Yes() 기능을 게시하시기 바랍니다. 거기에 약간의 오류가있을 수 있습니다.

+0

예()를 경고로 바꿨으며 동일한 문제가있었습니다. –

2

페이지 언어 VB 또는 C#입니까? 그것이 VB의 경우 익명의 typed html 속성을 작성하는 구문이 잘못되었습니다. VB에서 익명 형식의 개체를 만드는 방법에 대해서는 MSDN reference을 참조하십시오.

<%=Html.RadioButton("obp17", 
        "57", 
        ViewData.Eval("obpValue17").ToString().Equals("57"), 
        New With { .onclick = "Yes()" }) %> 

페이지 언어를 C#으로 변경하는 것이 좋습니다.

또한 라디오 버튼에 클래스를 지정하고 jQuery를 사용하여 한 번에 모든 핸들러를 추가 할 수 있습니다 (틀림없이). 대개 자바 스크립트를 마크 업과 분리해야합니다.

<%=Html.RadioButton("obp17", 
        "57", 
        ViewData.Eval("obpValue17").ToString().Equals("57"), 
        New With { .class = "heinz" }) %> 

<script type="text/javascript> 
    $('.heinz').click(function() { 
     ... implement the logic of Yes() here ... 
    }); 
</script> 
+0

, 그것은 보인다. –

+0

오류는 컴파일러 오류처럼 보이고 브라우저 오류가 아니므로 클래스 식별자 또는 익명 유형에 With 키워드가 필요함을 나타냅니다. 페이지 언어가 C# 인 경우이 경우는 기대하지 않습니다. – tvanfosson

+0

C# 대신 VB를 사용하면 # 내 머리에 펑하는 소리가 나옵니다. – Funka

2

아무 문제가 발생하면 용서해주십시오. 내 문제는 궁극적으로 "System.Web.Mvc.ViewUserControl"을 상속 한 ASCX 파일의 첫 번째 줄을 삭제하여 발생했습니다. 일단이 파일을 넣으면 모든 문제가 사라졌습니다.

일한 코드의 라인은 샘플에 비해

<%= Html.TextBox("obpt9",ViewData.Eval("obpt9"), new { onclick = "alert('hi')" })%> 

다른 라인,하지만 그들은 모두 동일합니다.

다시 한 번 혼란을 초래해서 죄송합니다.

2

일반적인 구조는 다음과 같습니다 : 당신이 그가 "새로운"keywoard으로, 비주얼 베이직을 사용하고 생각하게 그가 C#을 사용처럼

@Html.RadioButtonFor(t => t.ViewModelVariableName,"RadioButtonValue", new {javascriptEvent = "javascriptMethodName"});