0

我正在尝试在 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 创建的页面)。但是,当我使用使用母版页创建的页面时,它不起作用。

如何解决这个问题?谢谢你。

4

1 回答 1

0

您的母版页是否与您的 aspx 页面位于同一目录中?您是否检查过所有 js 文件是否已正确加载?请使用您的 asp.net 标记更新您的问题

于 2013-06-03T09:00:55.457 回答