2011-07-25 9 views
2

タイトルが重複しているようですが、この質問に対する回答を見つけることができませんでした。Jquery UIオートコンプリートで結果が表示されない

私はJquery UIのオートコンプリートを使用しています。私は正しいJSONデータがデバッガに戻ってきているのを確認できます。しかし、何もテキストボックスに戻ってきません。

私のjavascript:私のAutoCompletePage.aspxページから

<script type="text/javascript"> 
    $(document).ready(function() { 
     myAutoComplete("#<%= myTxtBox.ClientID %>", "AutoCompletePage.aspx"); 
    }); 

    function myAutoComplete(ObjectId, DataURL) { 
     $(ObjectId).autocomplete({ 
      source: function (request, response) { 
       $.ajax({ url: DataURL, dataType: 'jsonp', 
        data: { q: request.term, limit: 10 }, 
        success: function (data) { 
         response($.map(data, function (item) { 
          return { label: item[1], value: item[0], id: item[0]} 
         })) 
        } 
       }) 
      } 
     }); 
    } 

</script> 

スニペット:

foreach (DataRow dataRow in dataTable.Rows) 
{ 
    string[] cells = new string[] { dataRow[0].ToString(), dataRow[1].ToString() }; 
    output.Add(cells); 
} 

以降...

Response.Write(json.Serialize(output)); 

あなたはそのJSONこの絵で見ることができますデータですが、テキストボックスには何も起こりません。助けることができる誰にも事前に感謝します。

autocomplete results

+0

を? – GalacticCowboy

答えて

0

私はあなたがここにjsonpを使用すべきではない予感を持っています。 JSONPは一般にクロスドメイン要求に使用されます。

同じドメインでリクエストを行っているようです(また、返されるデータにはコールバック機能がないため、通常のjsonを使用しても問題ありません)。

jsonにごdatatypeパラメータを変更してみてください:どのような `myTxtBox`の定義に関する

$(ObjectId).autocomplete({ 
     source: function (request, response) { 
      $.ajax({ url: DataURL, dataType: 'json', 
       data: { q: request.term, limit: 10 }, 
       success: function (data) { 
        response($.map(data, function (item) { 
         return { label: item[1], value: item[0], id: item[0]} 
        })) 
       } 
      }) 
     } 
    }); 
+0

うわー。私はjson/jsonp(POSTも試しています)の有無にかかわらず非常に多くのバリエーションを試しましたが、これは動作します。簡単な答えをありがとう。 jsoneryはjqueryuiのウェブサイトの例で使用されていたので、私はjsonpを使用していましたが、別のドメインからデータを取得しているためです。再度、感謝します。 – WEFX

+0

@WEFX:問題ありません!喜んで ':)' –

関連する問題