C# 在asp.net中自动完成选择多个标记
任何人都可以告诉我如何在自动完成多个选择中使用标记化,我确信,我只希望使用asp.net web from web service 我的代码:C# 在asp.net中自动完成选择多个标记,c#,asp.net,web-services,autocomplete,tokenize,C#,Asp.net,Web Services,Autocomplete,Tokenize,任何人都可以告诉我如何在自动完成多个选择中使用标记化,我确信,我只希望使用asp.net web from web service 我的代码: $(函数(){ //城市的Web服务javascript代码 $(“[id*=ctl00\u ContentMain\u TextBoxSkills]”)。自动完成({ 来源:功能(请求、响应){ $.ajax({ url:“”, 数据:“{'username':'”+request.term+“}”, 数据类型:“json”, 类型:“POST”,
$(函数(){
//城市的Web服务javascript代码
$(“[id*=ctl00\u ContentMain\u TextBoxSkills]”)。自动完成({
来源:功能(请求、响应){
$.ajax({
url:“”,
数据:“{'username':'”+request.term+“}”,
数据类型:“json”,
类型:“POST”,
contentType:“应用程序/json;字符集=utf-8”,
成功:功能(数据){
如果(数据长度>0){
响应($.map)(数据.d,函数(项){
返回{
标签:item.split('-')[0],
val:item.split('-')[1]
};
}))
}否则{
响应([{label:'未找到结果',val:-1}]);
}
}
});
},
选择:功能(e、u){
如果(u.item.val==-1){
返回false;
}
}
});
});
我想使用web服务从数据库中获取数据,并在前端显示以进行多次选择
Web Service:
DataTable dt = userRegistrationHelper.GetSkillsList(username);
DataRow[] rows = null;
rows = dt.Select(string.Format("SkillName = {0}", username));
string[] result = new string[rows.Length];
for (int i = 0; i <= rows.Length - 1; i++)
{
result[i] = rows[i]["SkillName"].ToString();
}
return result;
Web服务:
DataTable dt=userRegistrationHelper.GetSkillsList(用户名);
DataRow[]行=null;
rows=dt.Select(string.Format(“SkillName={0}”,username));
字符串[]结果=新字符串[rows.Length];
对于(int i=0;i用逗号分隔的多个单词或值自动完成
$(函数(){
$(“[id*=ctl00\u ContentMain\u TextBoxSkills]”)。自动完成({
来源:功能(请求、响应){
$.ajax({
类型:“POST”,
contentType:“应用程序/json;字符集=utf-8”,
url:“”,
数据:“{'username':'”+extractLast(request.term)+“}”,
数据类型:“json”,
成功:功能(数据){
答复(数据d);
},
错误:函数(结果){
警报(“错误”);
}
});
},
焦点:函数(){
//防止在焦点上插入值
返回false;
},
选择:功能(事件、用户界面){
var术语=分割(该值);
//删除当前输入
terms.pop();
//添加所选项目
术语推送(ui.item.value);
//添加占位符以在末尾获得逗号和空格
术语。推送(“”);
this.value=terms.join(“,”);
返回false;
}
});
$(“[id*=ctl00\u ContentMain\u TextBoxSkills]”)。绑定(“keydown”,函数(事件){
如果(event.keyCode===$.ui.keyCode.TAB&&
$(this.data(“自动完成”).menu.active){
event.preventDefault();
}
})
功能拆分(val){
返回val.split(/,\s*/);
}
功能提取最后(学期){
返回拆分(term.pop();
}
});
hello@Manish,我正在使用您提供的代码,但该代码正在调用my web service方法,这给了我ERRORthnx帮助@Manish,现在我解决了这个问题。
Web Service:
DataTable dt = userRegistrationHelper.GetSkillsList(username);
DataRow[] rows = null;
rows = dt.Select(string.Format("SkillName = {0}", username));
string[] result = new string[rows.Length];
for (int i = 0; i <= rows.Length - 1; i++)
{
result[i] = rows[i]["SkillName"].ToString();
}
return result;
Autocomplete with multiple words or values with comma separated
$(function () {
$("[id*=ctl00_ContentMain_TextBoxSkills]").autocomplete({
source: function(request, response) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: '<%=ResolveUrl("~/WebServices/WebServiceSkills.asmx/GetAutoCompleteData")%>',
data: "{'username':'" + extractLast(request.term) + "'}",
dataType: "json",
success: function(data) {
response(data.d);
},
error: function(result) {
alert("Error");
}
});
},
focus: function() {
// prevent value inserted on focus
return false;
},
select: function(event, ui) {
var terms = split(this.value);
// remove the current input
terms.pop();
// add the selected item
terms.push(ui.item.value);
// add placeholder to get the comma-and-space at the end
terms.push("");
this.value = terms.join(", ");
return false;
}
});
$("[id*=ctl00_ContentMain_TextBoxSkills]").bind("keydown", function(event) {
if (event.keyCode === $.ui.keyCode.TAB &&
$(this).data("autocomplete").menu.active) {
event.preventDefault();
}
})
function split(val) {
return val.split(/,\s*/);
}
function extractLast(term) {
return split(term).pop();
}
});