2012-01-25 38 views
0

jQuery的工作完美,當我使用的片段中的.aspx包括本jQuery的不是從C#VAR獲得的變量值

$(function() { 
    var availableTags = [ 
     "ActionScript", 
     "AppleScript", 
     "Asp", 
     "BASIC", 
     "C", 
     "C++" 
    ]; 
    $("#tags").autocomplete({ 
     source: availableTags 
    }); 
}); 
</script> 

然後我寫了下面的代碼在我的.cs文件

protected void Page_Load(object sender, EventArgs e) 
{ 

    DataClassesDataContext db = new DataClassesDataContext(); 
    var val = from q in db.ques_tbls select q.qTitle; 
    db.SubmitChanges(); 
} 

後添加這個我改變了.aspx腳本中的一行這樣的

var availableTags = <%=val%>; 

我結束了這個錯誤。 。 編譯器錯誤信息:CS0103:「VAL」這個名字並不在當前的背景下存在

源錯誤:

Line 12:  <script type="text/javascript"> 
Line 13:   $(function() { 
Line 14:    var availableTags = <%=val %>; 
Line 15:    function split(val) { 
Line 16:     return val.split(/,\s*/); 
+0

我的目標是爲CS變量分配「availableTags =」 – user1074474

回答

6

你宣佈VAL一個局部變量來你的Page_Load方法

var val = from q in db.ques_tbls select q.qTitle; 

它必須在類一級存在aspx頁面中使用它。創建一個成員或屬性來存儲值。

+2

由於ASPX頁面從代碼隱藏頁面繼承,因此它的範圍必須受到保護或公開。 –

+1

另外,別忘了在javascript變量周圍添加分隔符。他們目前失蹤。 –

4

只需創建其中返回標題C#代碼的功能。

protected string returnTitle() { 
    DataClassesDataContext db = new DataClassesDataContext(); 
    var val = from q in db.ques_tbls select q.qTitle; 
    db.SubmitChanges(); 
    return val.ToString(); 
} 

和JS ..

<script> 
    var availableTags = "<%= returnTitle() %>"; 
    console.log(availableTags); 
</script> 

,將返回availableTags作爲字符串雖然,你可能的方式來調整它,如果這就是你所需要的返回數組。

+0

感謝Jamsi您的回答也非常有幫助 – user1074474