2010-02-17 7 views
1

< script> 태그 내에 다음 서버 측 코드를 삽입했습니다.JavaScript에 ASP.NET 서버 코드 포함

<% Dim dataTable As DataTable = cTab.getTabs(Session("UserID")) 
    If (dataTable.Rows.Count > 0) Then 
     For i As Int16 = 0 To dataTable.Rows.Count%> 
     { 
      contentEl: 'tab'+'<%dataTable.Rows(0)("TabID").ToString()%>', 
      title: '<%dataTable.Rows(0)("TabName").ToString()%>', 
      closable: false, 
      autoScroll: true 
      }, 
     <% Next 
    End If %> 

그러나 구문 문제로 인해 원하는 결과가 반환되지 않습니다. 올바르게 작성하려면 어떻게해야합니까?

+0

u 할 수있는 일을 설명해주세요. 그리고 무슨 구문 오류가 직면하고 있습니다 –

답변

2

전체 자바 스크립트 중 일부만을 제공했기 때문에 구문 문제를 찾기 위해 주변 스크립트의 모양을 분석 할 수 없습니다. 여러분이 제시 한 스 니펫은 여는 중괄호로 시작할 것입니다. 이것은 단지 서있는 것만으로는 유효하지 않습니다. 그게 무슨 일이야?

그 외에도 문자열을 스크립트에 출력하려면 Response.Write을 사용하거나 <%= %> 바로 가기를 사용해야합니다. 따라서 하나만 수행하면됩니다.

contentEl: 'tab'+'<%= dataTable.Rows(0)("TabID").ToString() %>', 
    title: '<%= dataTable.Rows(0)("TabName").ToString() %>', 

(= 기호에주의하십시오).

0

루프가 작동한다고 가정 할 때마다 항상 동일한 값을 사용하고 싶지 않을 것입니다. 나는 당신이 0 대신에 i를 사용하고 싶을 것이라고 생각한다. 그것은 루프가 작동하는지 아닌지를 정말로 알 수 없기 때문에 야생의 추측이다.

각 항목이 콤마에 의해 발생되는 루프 보면서 코드를 둘러 보지 않고

contentEl: 'tab'+'<%= dataTable.Rows(i)("TabID").ToString()%>', 
1

는 ....()이 아닌 끝에 추가 쉼표가있을 것이라는 것을 의미 일부 브라우저에서만 유효합니다.

잘못된 예

var myObjArr = [ 
    { 
    contentEl: 'tab'+'123', 
    title: 'name123', 
    closable: false, 
    autoScroll: true 
    }, 
    { 
    contentEl: 'tab'+'456', 
    title: 'name456', 
    closable: false, 
    autoScroll: true 
    }, 
]; 

유효한 예

var myObjArr = [ 
    { 
    contentEl: 'tab'+'123', 
    title: 'name123', 
    closable: false, 
    autoScroll: true 
    }, 
    { 
    contentEl: 'tab'+'456', 
    title: 'name456', 
    closable: false, 
    autoScroll: true 
    } 
]; 

참고 2 샘플이 더 추가 쉼표가 없다 (,).