1

asp.net Webforms アプリケーションで Bootstrap Typeahead を実装する方法の良い例を探しています。

アプリケーションは、すでに Bootstrap テーマとさまざまなプラグインを使用しています。ここで、ユーザーが最低 3 文字を入力してデータセットを検索できるようにしたいと考えています。ユーザーが 3 文字を入力すると、スクリプトがトリガーされ、入力した単語に一致する値の検索が Web メソッドで開始され、結果がユーザーに配信されます。

これまでネットで見た例から、私はこれを持っています:

 [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
        public List<string> GetNames(string term)
        {
            // A list of names to mimic results from a database
            List<string> nameList = new List<string>
            {
                "Jonathan", "Lisa", "Jordan", "Tyler", "Susan", "Brandon", "Clayton", "Elizabeth", "Jennifer"
            };

            var results = nameList.Where(n =>
                n.StartsWith(term, StringComparison.OrdinalIgnoreCase));           
            return new JsonResult()
            {                
                Data = results.ToArray(),
                JsonRequestBehavior = JsonRequestBehavior.AllowGet
            };
        }

上記のコード チャンクで JsonResult() と JsonRequestBehavior が認識されず、エラーが発生します。次に、クライアント側で私はこれを持っています:

<input type="text" id="txtSearch"  data-provide="typeahead" runat="server" />

次に、私がこれを持っているスクリプト(オンラインでも見つかりました):

<script type="text/javascript">
       $(document).ready(function () {              
           $('#<%= txtSearch.ClientID %>').typeahead({
               source: function (query, process) {                                       
               },
               updater: function (item) {
                   // implementation
               },
               matcher: function (item) {
                   if (item.toLowerCase().indexOf(this.query.trim().toLowerCase()) != -1) {
                       return true;
                   }
               },
               sorter: function (items) {
                   return items.sort();
               },
               highlighter: function (item) {
                   var regex = new RegExp( '(' + this.query + ')', 'gi' );
                   return item.replace( regex, "<strong>$1</strong>" );
               },
           });
       });    
</script>
4

2 に答える 2

1

これを試して

<input type="text" id="txtSearch"  data-provide="typeahead" runat="server" />

//No javascript only add bootstrap.js or typeahead js and css

        protected void Page_Load(object sender, EventArgs e)
    {
        List<string> nameList = new List<string>
        {
            "Jonathan", "Lisa", "Jordan", "Tyler", "Susan", "Brandon", "Clayton", "Elizabeth", "Jennifer"
        };
        string str = "";
        for (int i = 0; i < nameList.Count; i++)
        {
            str = str + '"' + nameList[i].ToString() + '"' + ',';
        }
        if (str != "")
        {
            str = str.Remove(str.Length - 1);
        }
        str = "[" + str + "]";
        txtSearch.Attributes.Add("data-source", str);

    }
于 2013-06-12T06:37:11.360 に答える
0

これを試すことができます:

テキストボックス:

<asp:TextBox ID="txtBuscar" runat="server" CssClass="span3" placeholder="Text..." data-provide="typeahead" autocomplete="off" data-items="4"></asp:TextBox>

data-items = n 項目リスト

コードビハインド:

string asdf = "[\"Francisco\", \"Maria\", \"Fernando\", \"Alejandra\"]";
txtBuscar.Attributes.Add("data-source", asdf);
于 2014-04-17T11:55:30.187 に答える