0

所以我创建了一个巨大的对象,它通过一个数据库表并收集所有具有适当列名的行,如下所示(sx 是一个输出到 javascript 的字符串):

if (i == 0)
{
   sx += "SearchAutocomplete['"+ s.Key + "'] = {};";
}
sx += "SearchAutocomplete['" + s.Key + "'][" + i + "] = '" + s.Value + "';";

(上面是 C# 代码,但错误是 javascript 部分)。

我的目标是使用这个巨大的对象将它放在 JQuery UI 的 autocomplete() 函数中,基于列名......

http://jqueryui.com/demos/autocomplete/

htmltable += sx + "$('#mySearchBox').autocomplete({" +
                "source: jQuery.makeArray(SearchAutocomplete['" + columnName + "'])" +
                "});"

我尝试使用 jQuery.makeArray,但无论我尝试什么,它都无法将 SearchAutocomplete['columnName'] 识别为值数组。

自动完成不起作用。

我猜解决方案是以某种方式循环并将对象转换回数组。但是有没有更简单的方法?

尝试修复 #1:

if(list_fields.ContainsKey(s.Key)){
   if (i == 0)
   {
      sx += "SearchAutocomplete['"+ s.Key + "'] = [];";
   }
   sx += "SearchAutocomplete['" + s.Key + "'].push('" + s.Value + "');";
 }
4

1 回答 1

1

也许试试这个改变:

//Outside your loop:
sx += "SearchAutocomplete['" + s.Key + "'] = [];";
//... Inside your loop:
sx += "SearchAutocomplete['" + s.Key + "'].push('" + s.Value + "');";

这样,SearchAutocomplete[columnName]是一个原生数组启动。

于 2012-09-18T19:31:30.573 回答