【问题标题】:How can i pass values to a javascript array?如何将值传递给 javascript 数组?
【发布时间】:2010-10-06 17:48:25
【问题描述】:

我正在尝试实现文本框的自动完成方法。

我想使用here提供的基于jquerys自动完成的例子

<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 as string ()

我应该如何将这些值作为自动完成所需的源传递?

第二个问题是具体方式没有使用AJAX。 这意味着我猜测表单的负载我会将所有可用值加载到源中。这不是矫枉过正吗?

你有什么建议?

感谢和问候!

【问题讨论】:

标签: javascript asp.net jquery autocomplete


【解决方案1】:

哦,也许我误解了 - 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);
    }
});

【讨论】:

  • 是的! GetTheResults 是一个服务器端的 ASP 函数。很抱歉没有提到这一点。
【解决方案2】:

您可以改为手动将内容从服务器写出到客户端。尝试创建一个名为:

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。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多