簡體   English   中英

如何將值傳遞到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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM