1

我在 asp.net 和 c#.net 中使用带有文本框的 ajax 自动完成扩展器。我无法获得可供选择的列表,我有适当的 Web 服务方法调用..任何人都可以指导我完成自动操作。声明

这是我使用的标签我 aspx

the ajax part

    <asp:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server"  TargetControlID="txtUsername"  MinimumPrefixLength="1" EnableCaching="true" CompletionSetCount="1" CompletionInterval="1000" ServiceMethod="GetCountries" >
 </asp:AutoCompleteExtender>
</div>

背后的代码

[System.Web.Services.WebMethod]
public static List<string> GetCountries(string strUserName, int count)
{


    SqlConnection scon = new SqlConnection(ConfigurationManager.ConnectionStrings["ConStr"].ToString());
    scon.Open();
    SqlCommand scmd = new SqlCommand("select * from UserInformation where UserName like @Username+'%'", scon);
    scmd.Parameters.AddWithValue("@Username", strUserName);
    SqlDataAdapter sda = new SqlDataAdapter(scmd);
    DataTable dt = new DataTable();
    sda.Fill(dt);
    List<string> UserNames = new List<string>();
    for (int i = 0; i < dt.Rows.Count; i++)
    {

        UserNames.Add(dt.Rows[i][1].ToString());
    }


    return UserNames;
}
4

1 回答 1

0

标签中的 ASPX 代码。GetCur : asmx 文件中给出的名称。

$("#<%=txtSearch.ClientID %>").autocomplete({
        source: function(request, response) {
            $.ajax({
                 url: '<%=ResolveUrl("~/WebService.asmx/GetCur") %>',
                data: "{ 'prefixText': '" + request.term + "'}",
                dataType: "json",
                type: "POST",
                contentType: "application/json; charset=utf-8",
                success: function(data) {
                    response($.map(data.d, function(item) {
                        return {
                            label: item,
                            val: item
                        }
                    }))
                },
                error: function(response) {
                    alert(response.responseText);
                },
                failure: function(response) {
                    alert(response.responseText);
                }
            });
        },
    });
});
于 2012-11-26T11:34:10.803 回答