[英]How can I pass an NSArray to JavaScript file and print that array in JavaScript?
[英]How can i pass values to a javascript array?
我正在嘗試為文本框實現自動完成方法。
我想使用基於此處提供的jquery自動完成功能的示例
<head>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
<script>
$(document).ready(function() {
$("input#autocomplete").autocomplete({
source: ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby"]
});
});
</script>
</head>
第一個也是主要的問題是我不知道將值傳遞給source:
說我的意思是,假設我有一個服務器端ASP.NET函數GetTheResults作為listof(string)或GetTheResults作為string()
我應該如何將這些值作為自動完成所需的來源?
第二個問題是特定方法不使用AJAX。 這意味着我估計在加載表格時,我會將所有可用值加載到源。 這不是一種過度殺傷力嗎?
您有什么建議呢?
謝謝並恭祝安康!
您可以改為手動將內容從服務器寫到客戶端。 嘗試創建一個稱為以下內容的公共方法:
public string GetJs()
{
var data = this.GetTheResults();
string output = "[";
bool comma = false;
foreach (var i in data)
{
if (comma)
output += ", ";
else
comma = true;
output += '" + i + "'";
}
return output + "]";
}
並將您的客戶端腳本更改為:
$(document).ready(function() {
$("input#autocomplete").autocomplete({
source: <%= GetJs() %>
});
});
您可能必須將<%=%>注入為字符串,而是這樣做:
source: eval("<%= GetJs() %>")
或者,您可以將整個JS從頁面寫入輸出。
HTH。
哦,也許我誤會了GetTheResults
是服務器端ASP.NET函數嗎? 你沒說 假設它是客戶端JavaScript函數。 如果是服務器端,為什么不實現AJAX方式呢?
如果GetTheResults
返回所有值,那么我認為您可以內聯填充它,即
$("input#autocomplete").autocomplete({
source: GetTheResults()
}
});
然后,控件將過濾列表以進行顯示。 或者,您可以使用該頁面上記錄的函數源機制,例如
$("input#autocomplete").autocomplete({
source: function(request, response) {
var results = GetTheResultsForInput(request.term);
response(results);
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.