asp.net c#autocomplete with textbox

时间:2018-02-25 08:49:33

标签: javascript jquery asp.net

我正在尝试使用jquery在文本框中使用自动完成功能。我没有收到任何错误。但是代码什么也没做。

请找到我的代码。  这是我的表格代码。 html:

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
    <link href="/dist/css/jquery.autocomplete.css" rel="stylesheet" />
    <script src="/dist/js/jquery.autocomplete.min.js"></script>
  
    <script type="text/javascript">
        $(document).ready(function () {
            $(".txtVendor").autocomplete("/DataAccess/get-vendor-list.aspx", {
                width: 230, selectFirst: false, scrollHeight: 90, mustMach: true
            });

            $(".txtVendor").result(function (event, data, formatted) {
                if (data) {
                    $(".hidVendor").val(data[1].trim());
                }
            });
        });
    </script> 
   
</asp:Content>

 <div class="form-group">
                            <asp:Label ID="lblVendor" runat="server" Text="Vendor Name"></asp:Label>
                            <asp:TextBox ID="txtVendor" runat="server" Text="" class="form-control" CssClass="txt Vendor" Style="width: 100%;"></asp:TextBox>
                            <asp:TextBox ID="hidVendor" runat="server" CssClass="hidVendor"></asp:TextBox>
                        </div>

get-vendor-list.aspx位于下方。

 protected void Page_Load(object sender, EventArgs e)
    {
        string retStr = "";
        if (Request.QueryString["q"] != null)
        {
            VendorList lst = new VendorList();
            VendorDB db = new VendorDB();
            db.strFilter = " AND VendorID like '%" + Request.QueryString["q"].ToString() + "%' OR VendorName like '%" + Request.QueryString["q"].ToString() + "%'";
            lst = db.GetListForGrid(10, 1, "VendorName");
            if (lst != null)
            {
                if (lst.Count > 0)
                {
                    foreach (Vendor itm in lst)
                    {
                        retStr += itm.VendorName + " | " + itm.VendorID + Environment.NewLine;

                    }
                }
            }
        }
        Response.Write(retStr);
    }

Masterpage已经提到了js文件。

<script src="/plugins/jQuery/jQuery-2.1.4.min.js"></script>
    <script src="/plugins/jQueryUI/jquery-ui.min.js"></script> 
    <link href="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.9.2/themes/blitzer/jquery-ui.css"rel="Stylesheet" type="text/css" />
    
        
    <script src="/bootstrap/js/bootstrap.min.js"></script>
    <link rel="stylesheet" href="/bootstrap/css/bootstrap.min.css" />

没有错误也没有结果。感谢您的支持。

1 个答案:

答案 0 :(得分:0)

您正在调用/DataAccess/get-vendor-list.aspx页面,而您应该在该页面后面的代码中调用方法。另外,你必须将[Webmethod]装饰器添加到该方法中。有关示例,请参阅http://dotnetmentors.com/aspnet/jquery-autocomplete-by-example.aspx