C# jquery ui自动完成如何将ID设置到文本框中,它将返回文本值

C# jquery ui自动完成如何将ID设置到文本框中,它将返回文本值,c#,jquery,jquery-ui,autocomplete,jquery-autocomplete,C#,Jquery,Jquery Ui,Autocomplete,Jquery Autocomplete,我很难让jQuery的自动完成小部件为我工作。我正在使用来自服务器的键/值对列表 我有以下要求: 如果用户设置了值的id,就像他知道城市代码一样 在输入城市名称的过程中,他输入了城市代码——我希望自动完成程序会输入城市名称,但不会!! 我编辑了我的代码,现在它可以工作了 我添加了这几行 if(data.d.length==1&&request.term.match(/\d+/g)) 设置值(文本框,隐藏,data.d[0]); 其他 函数设置值(文本框,隐藏,值){ textbox.focus(

我很难让jQuery的自动完成小部件为我工作。我正在使用来自服务器的键/值对列表

我有以下要求:

  • 如果用户设置了值的id,就像他知道城市代码一样 在输入城市名称的过程中,他输入了城市代码——我希望自动完成程序会输入城市名称,但不会!!
    我编辑了我的代码,现在它可以工作了
    我添加了这几行
    
    if(data.d.length==1&&request.term.match(/\d+/g))
    设置值(文本框,隐藏,data.d[0]);
    其他
  • 函数设置值(文本框,隐藏,值){ textbox.focus().val(value.Text); hidden.val(value.Semel);}

  • 另一件事是,如果一个人使用相同的页面进行创建和编辑-在编辑时重新加载页面,你必须为值重新创建所有跨距等,我想从服务器发送自动完成的代码,而不是文本值,我想知道何时将值设置到文本框中,自动完成将开始工作,并将从服务器带来值
    但我还是被困在这里:
    我不知道如何使用send值(请求值)触发“autocomplete”事件
    这是我的C代码:


    }

    对于第一个问题,这取决于你尝试过的逻辑,以防万一,如果你有任何国家的id,那么这应该不会有任何困难

    第二个查询是关于页面性能的,如果您尝试使用ajax根据搜索模式更新元素,那么这应该不会更困难,因为在这种情况下,您必须只更新真实的元素,同时保持页面的其余部分完好无损

    请参阅,以便更好地理解相同的内容

    [WebMethod(EnableSession = true)]
    [ScriptMethod]
    public List<IEntityBase> FetchList(string Text, string Code, string Dspl, int NumRecordes, string TableName)
    {
        Text = Server.UrlDecode(Text);
        List<Tavla> tvListById = null;
        int ignored = 0;
    if (int.TryParse(Text, out ignored))
        tvListById = TvList.GetTvListById(TableName, ignored, Code, Dspl);if (tvListById != null && tvListById.Count != 0)
        return tvListById.Cast<IEntityBase>().ToList();
    
    var fetchShem = TvList.GetData(TableName, Code, Dspl)
    .Where(m => m.Shem.ToLower().Contains(Text.ToLower()))
    .Take(NumRecordes);
    return fetchShem.Cast<IEntityBase>().ToList();
    
    enter code here
    
     textbox.autocomplete({
            source: function (request, response) {
                $.ajax({
                    url: "AutoComplete.asmx/" + funcName,
                    data: "{ 'Text': '" + escape(request.term) + "','Code':'" + code + "','Dspl':'" + dspl + "','NumRecordes':'" + numrecordes + "','TableName':'" + tablename + "'}",
                    type: "POST",
                    contentType: "application/json; charset=utf-8",
                    dataFilter: function (data) { return data; },
                    success: function (data) {                      
                        if (data.d.length == 1 && request.term.match(/\d+/g))
                                SetValue(textbox, hidden, data.d[0]);
                            else
                            response($.map(data.d, function (item) {
                                return {
                                    label: item.Text,
                                    value: item.Semel
                                }
                            }));
                        }
                    },
                    error: function (msg) { alert(msg); }
                });
            },
            minLength: minLength,
            select: function (event, ui) {
                var selectedObj = ui.item;
                if (selectedObj) {
                    textbox.val(selectedObj.label);
                    hidden.val(selectedObj.value);
                }       return false;   },
    
        });function SetValue(textbox, hidden, value) {
    textbox.focus().val(value.Text);
    hidden.val(value.Semel);