【问题标题】:How to use ASP.NET to get data from MSSQL for JQuery Autocomplete widget如何使用 ASP.NET 从 MSSQL 中获取 JQuery 自动完成小部件的数据
【发布时间】:2019-03-27 16:29:35
【问题描述】:

我下载了 jquery-ui 以使用自动完成小部件,并且我想从 MSSQL 数据库中获取项目。但我不知道如何在带有 sql 的 ASP.NET 中使用它。代码基本如下。

        var availableTags = [
            "ActionScript",
            "AppleScript",
            "Asp",
            "BASIC",
            "C",
            "C++",
            "Clojure",
            "COBOL",
            "ColdFusion",
            "Erlang",
            "Fortran",
            "Groovy",
            "Haskell",
            "Java",
            "JavaScript",
            "Lisp",
            "Perl",
            "PHP",
            "Python",
            "Ruby",
            "Scala",
            "Scheme"
        ];
        $("#autocomplete").autocomplete({
            source: availableTags
        });
 <div>
        <input id="autocomplete" title="type &quot;a&quot;">
    </div>

编辑:只需了解如何操作即可。只需使用以下代码将 jquery 复制到服务器端:

StringBuilder strScript = new StringBuilder();
        strScript.Append("var availableTags = ['java','javascript'];");
        strScript.Append("$('#autocomplete').autocomplete({");
        strScript.Append("source: availableTags});");
        Page.ClientScript.RegisterStartupScript(this.GetType(), "Script",
        strScript.ToString(), true);

【问题讨论】:

  • 您使用 MVC 还是 Web 表单?

标签: javascript jquery asp.net autocomplete


【解决方案1】:

首先,您需要编写后端代码以从 SQL 获取数据。然后您将使用 JQuery 调用此函数,并且您需要将此值设置为自动完成源。

所以你的自动完成代码应该是这样的。

$("#YourAutoCompleteInputId").autocomplete({
    autoFocus: true, 
    delay: 0,
    scrollIntoView: false,
    source: function (request, response) {
        $.get("/YourControllerName/YourControllerMethod/", { searchTerm: request.term }, function (data) {
            response($.map(data, function (item) {
                return {
                    label: item.Name 
                    val: item.Id
                }
            }));
        }).fail(function () {
            alert("error");
        });
    },
    select: function (event, ui) {
        // whatever you return from your back-end code. you can reach here
        // you can reach it by using ui.item.label => it's your label and ui.item.val => is your value. 
        // do something when user select one the result from autocomplete list.
    },
    open: function () {
        // do something when user open autocomplete list
    },
    close: function () {
        // do something when user close autocomplete list
    }
});

而且你的方法应该是这样的。

public async Task<JsonResult> GetApplicantNamesForAutoComplete(string searchTerm)
{
    var list = yourData.Where(x => x.yourTableColumnName.Contains(searchTerm))
        .Select(x => new { x.Id, Name = (x.FirstName + " " + x.LastName)});
    return Json(await list.ToListAsync(), JsonRequestBehavior.AllowGet);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-04
    • 1970-01-01
    • 2015-05-22
    • 2012-05-27
    • 1970-01-01
    • 2012-08-11
    • 2015-09-25
    • 1970-01-01
    相关资源
    最近更新 更多