我正在尝试在 asp.net 中实现自动完成文本框。
在 aspx.cs 页面中,我有 BindName 用于从数据库中获取数据
private string BindName()
{
DataTable dt = null;
using (conn = new SqlConnection(ConfigurationManager.ConnectionStrings["SEP_Project_NewConnectionString2"].ConnectionString))
{
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandType = CommandType.Text;
cmd.CommandText = "select subjectName from course";
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
dt = new DataTable();
da.Fill(dt);
}
}
}
StringBuilder output = new StringBuilder();
output.Append("[");
for (int i = 0; i < dt.Rows.Count; ++i)
{
output.Append("\"" + dt.Rows[i]["subjectName"].ToString() + "\"");
if (i != (dt.Rows.Count - 1))
{
output.Append(",");
}
}
output.Append("];");
return output.ToString();
}
我在page_load中调用这个方法,
public string listFilter = BindName();
然后在aspx页面中,
<script type="text/javascript" language="javascript">
function LoadList()
{
var ds=null;
ds = <%=listFilter%>;
$( "#txtCourse" ).autocomplete({
source: ds
});
}
window.onload = function () { LoadList();}
</script>
这适用于普通的 aspx 页面(没有 masterpage 创建的页面)。但是,当我使用使用母版页创建的页面时,它不起作用。
如何解决这个问题?谢谢你。