asp.NET と c# を使用して、検索ボックスにオートコンプリートを実装しています。これが私のコードの分割方法です。 クラス クラス ListSuggestions.cs、デフォルトの Default.aspx.cs クラス、および私の jquery オートコンプリート コードがあるデフォルトのページ Default.aspx があります。
これは私の ListSuggestions.cs です:
public class ListSuggestions
{
public string[] loadArray(string[] companiesArray)
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ConnectionString);
SqlCommand cmd = new SqlCommand(@"SELECT [Name] FROM [Party_Company_General]", conn);
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
var companies = new List<string>();
while (dr.Read())
{
companies.Add(dr["Name"].ToString());
}
return companiesArray = companies.ToArray();
}
}
Default.aspx.cs :
public partial class Default : System.Web.UI.Page
{
private string[] companiesArray { set; get; }
public class JavaScript
{
public static string Serialize(object o)
{
JavaScriptSerializer js = new JavaScriptSerializer();
return js.Serialize(o);
}
}
protected void Page_Load(object sender, EventArgs e)
{
ListSuggestions listSuggestions = new ListSuggestions();
String[] companiesArray = listSuggestions.loadArray(this.companiesArray);
}
}
Default.aspx スクリプト コード:
<script type="text/javascript">
$(function () {
var availableTags = <%=JavaScript.Serialize(this.companiesArray) %>
$(".searchbox").autocomplete({
source: availableTags
});
});
</script>
companiesArray
問題は、文字列が JavaScript コードにアクセスできるとは思わないことです。私のコードの問題は何ですか?どうすれば問題を解決できますか、誰か助けてください。