2010-02-17 27 views
1

我在<腳本>標記中嵌入了以下服務器端代碼。在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

你能解釋一下你想做什麼嗎?以及你所面臨的語法錯誤 – 2010-02-17 06:12:36

回答

2

您只給出了整個javascript的一部分,所以我們無法分析周圍腳本的外觀以查找語法問題。你給出的代碼片段只是從一個開放的大括號開始,這個大括號本身並不有效。它之前是什麼?

除此之外,如果你想輸出字符串的腳本,你需要使用Response.Write或使用<%= %>快捷方式做。所以對於一個,你需要做的:

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

(注意= =符號)。

0

假設你的循環正在工作,你可能不希望每次都有相同的值。我想你可能想使用我而不是0.這只是一個瘋狂的猜測,因爲我真的不知道該循環是否應該起作用。

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 
    } 
]; 

注第二樣品已經沒有多餘的逗號(,)。

相關問題