在Asp.net Web表单中向ajax自动完成功能添加两个值

问题描述 投票:0回答:1

我有搜索文本框,我想在其中实现自动完成检查。当您输入一个字母时,自动完成功能需要给您所有带有该字母的名称。我找到了与此相关的教程,但是我的问题是我想实现两个单选按钮,如果选中第一个,它将只为客户提供建议;如果选中第二个,将仅为公司提供建议。

我对Web服务.asmx中的这段代码感到满意

[WebMethod]
public class Autocomplete : System.Web.Services.WebService
{
    [WebMethod]

    public List<string> GetClientNames(string searchTerm,string rbtnValue)
    {
        List<string> clientNames = new List<string>();
        string connStr = ConfigurationManager.ConnectionStrings["RheosConnString"].ConnectionString;
        using (SqlConnection conn = new SqlConnection(connStr))
        {
            if (rbtnValue == "radio0")
            {
                SqlCommand cmd = new SqlCommand("spGetClientNames", conn);
                cmd.CommandType = CommandType.StoredProcedure;
                SqlParameter param = new SqlParameter("@term", searchTerm);
                cmd.Parameters.Add(param);
                conn.Open();
                SqlDataReader sdr = cmd.ExecuteReader();
                while (sdr.Read())
                {
                        clientNames.Add(sdr["ime"].ToString());

                }
            }
            else
            {
                SqlCommand cmd = new SqlCommand("spGetCompanyNames", conn);
                cmd.CommandType = CommandType.StoredProcedure;
                SqlParameter param = new SqlParameter("@term", searchTerm);
                cmd.Parameters.Add(param);
                conn.Open();
                SqlDataReader sdr = cmd.ExecuteReader();
                while (sdr.Read())
                {

                        clientNames.Add(sdr["naziv"].ToString());

                }
            }

        }
        return clientNames;
    }

}

我的Javascript看起来像这样

<script type="text/javascript" language="javascript">
        $(function () {
            $('#<%=txtSearch.ClientID%>').autocomplete({
                source: function (request, response) {
                    var value = $("form input[type='radio']:checked").val();
                    $.ajax({
                        url: "Autocomplete.asmx/GetStudentNames",
                        data: {searchTerm: request.term, rbtnValue:value},
                        type: "POST",
                        dataType: "json",
                        contentType: "application/json;charset=utf-8",
                        success: function (data) {
                            response(data.d);
                        },
                        error: function (result) {
                            alert('Postoji problem s dohvaćanjem zahtjeva');
                        }
                    });
                },
                minLength: 0
            });
        });

    </script>

我是否需要为单选按钮实现其他功能。我的值是radio0和radio1。谢谢!

javascript c# jquery asp.net asp.net-ajax
1个回答
0
投票

[在服务中,方法名称为GetClientNames,但在ajax调用中,您正在调用方法GetStudentNames。这很可能是问题所在。如果不是这个问题,请与您分享您的错误,以便我们为您提供帮助。

© www.soinside.com 2019 - 2024. All rights reserved.