在 Asp.net Web 表单中向 ajax 自动完成功能添加两个值
Posted
技术标签:
【中文标题】在 Asp.net Web 表单中向 ajax 自动完成功能添加两个值【英文标题】:Adding two values to ajax autocomplete function in Asp.net web forms 【发布时间】:2020-02-29 05:06:02 【问题描述】:我有搜索文本框,我想在其中实现自动完成检查。当您键入一个字母时,自动完成需要为您提供该字母的所有名称。 我找到了教程,但我的问题是我想实现两个单选按钮,如果选中第一个,它将只为您提供客户建议,如果选中第二个,它将只为您提供公司建议。
我在 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中的web服务方法是GetStudentNames
。除其他外。
我没有收到任何错误,只是我的自动完成功能不起作用。
【参考方案1】:
在您的服务中,方法名称是GetClientNames
,但在您的ajax 调用中,您调用的是方法GetStudentNames
。很可能这可能是问题所在。如果这不是问题,请分享您的错误,以便我能够帮助您。
【讨论】:
我改了,没有帮助。浏览器是否有可能自动输入并且与我的冲突。也许关闭自动完成会有帮助以上是关于在 Asp.net Web 表单中向 ajax 自动完成功能添加两个值的主要内容,如果未能解决你的问题,请参考以下文章
在 web 表单 asp.net 中显示从 ajax Json 到 ul 标记的数据
使用 jquery ajax 从 asp.net 网页表单页面调用 web api url
如何在不刷新的情况下使用 Ajax 在 ASP.NET MVC 中保存表单数据