삼중 따옴표?ASP.NET에서 데이터 바인딩된 Javascript 문자열 매개 변수를 어떻게 구분합니까?

StackOverflow https://stackoverflow.com/questions/1873

문제

앵커에서 Javascript 데이터 바인딩 문자열 매개변수를 어떻게 구분합니까? OnClick 이벤트?

  • ASP.NET Repeater 컨트롤에 앵커 태그가 있습니다.
  • 그만큼 OnClick 앵커 이벤트에는 Javascript 함수에 대한 호출이 포함되어 있습니다.
  • Javascript 함수는 입력 매개변수로 문자열을 사용합니다.
  • 문자열 매개변수는 Repeater의 데이터 바인딩된 값으로 채워집니다.

나는 "큰 따옴표"가 필요합니다 Container.DataItem.
나는 '작은 따옴표'가 필요하다 OnClick.

그리고 난 아직도 필요해 구분 기호 하나 더 (삼중따옴표?) Javascript 함수 호출의 입력 문자열 매개변수입니다.

'작은따옴표'를 다시 사용할 수 없으므로 Javascript 함수가 입력 매개변수가 정수가 아닌 문자열임을 어떻게 알 수 있습니까?

입력 문자열 매개변수 주위에 추가 따옴표가 없으면 Javascript 함수는 정수를 전달한다고 생각합니다.

앵커:

<a id="aShowHide" onclick='ToggleDisplay(<%# DataBinder.Eval(Container.DataItem, "JobCode") %>);' >Show/Hide</a>    

여기 자바스크립트가 있습니다:

<script language="JavaScript" type="text/javascript">
/* Shows/Hides the Jobs Div */
function ToggleDisplay(jobCode)
{
    /* Each div has its ID set dynamically ('d' plus the JobCode) */
    var elem = document.getElementById('d' + jobCode);

    if (elem) 
    {
        if (elem.style.display != 'block') 
        {
            elem.style.display = 'block';
            elem.style.visibility = 'visible';
        } 
        else
        {
            elem.style.display = 'none';
            elem.style.visibility = 'hidden';
        }
    }
}
</script>
도움이 되었습니까?

해결책

최근에 비슷한 문제가 있었는데 이를 해결하는 유일한 방법은 단일(&#39;) 및 큰따옴표(&#34;).

물론 소스 코드는 완전히 엉망이었지만 작동했습니다.

노력하다

<a id="aShowHide" onclick='ToggleDisplay(&#34;<%# DataBinder.Eval(Container.DataItem, "JobCode") %>&#34;);'>Show/Hide</a>

또는

<a id="aShowHide" onclick='ToggleDisplay(&#39;<%# DataBinder.Eval(Container.DataItem, "JobCode") %>&#39;);'>Show/Hide</a>

다른 팁

onclick='javascript:ToggleDisplay("<%# DataBinder.Eval(Container.DataItem, "JobCode")%> "); '

위와 같이 사용하세요.

입력 문자열 매개변수 주위에 추가 따옴표가 없으면 Javascript 함수는 정수를 전달한다고 생각합니다.

JavaScript가 이를 문자열로 변경하도록 강제하기 위해 기본적인 문자열 함수를 사용할 수 있습니까?좋다

value = value + ""

서버측 스크립트 블록 안에 추가 텍스트를 넣고 연결해 보세요.

onclick='<%# "ToggleDisplay(""" &  DataBinder.Eval(Container.DataItem, "JobCode") & """);" %>'

편집하다:스크립트 블록 외부에서도 큰따옴표를 사용할 수 있다고 확신합니다.

작은따옴표나 큰따옴표 없이 함수에 변수 전달

<html>
    <head>
    </head>
    <body>
        <script language="javascript">
        function hello(id, bu)
        {
            alert(id+ bu);
        }
        </script>
        <a href ="javascript:
            var x = &#34;12&#34;;
            var y = &#34;fmo&#34;;
            hello(x,y)">test</a>
    </body>
</html>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top