2016-05-16 12 views
0

これは私の最初のASP.Netアプリケーションです。テキストボックスにオートコンプリートを組み込もうとしています。現在、私は、データベースから文字列を返しますChampNameService.asmxと呼ばれる設定WebServiceがでどのようなユーザーの種類に応じて、持っている私は、サービスをテストする場合ASP.Net、オートコンプリートを組み込む

は、それが適切に動作しているようだ:。

WebService

WebService2

のaspxファイルには、次のようになります。

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 

<form id="form1" runat="server"> 

    <ul> 
     <li><a href="Webpages/Data/Champdata.aspx">Home</a></li> 
    </ul> 

     <link href="Styles/jquery-ui.min.css" rel="stylesheet" type="text/css" /> 
     <script src="Scripts/jquery-ui.min.js" type="text/javascript"> </script> 
     <script src="Scripts/jquery-ui.js" type="text/javascript"></script> 
     <script type="text/javascript"> 
       $(function() { 
     $('#<%= TextBox1.ClientID %>').autocomplete({ 
      source: function (request, response) { 
       $.ajax(
       { 
        url: "ChampNameService.asmx/GetChampionNames", 
        data: "{ 'Champname': '" + request.term + "' }", 
        type: "POST", 
        dataType: "json", 
        contentType: "application/json;charset=utf-8", 
        success: function (data) { 
         response(data.d); 
        }, 
        error: function (result) { 
         alert('There is a problem processing your request'); 
        } 
       }); 
      }, 
      minLength: 0 
     }); 
      }); 

     </script> 


<p>What champion are you playing? </p> 
    <asp:TextBox ID="TextBox1" runat="server" CausesValidation="True"></asp:TextBox> 

    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Submit" /> 
    <asp:GridView ID="gvChamps" runat="server"></asp:GridView> 


    <p>&nbsp;</p> 
    <p>&nbsp;</p> 
    </form> 

この

は、との問題を有する部品イムです:

  <link href="Styles/jquery-ui.min.css" rel="stylesheet" type="text/css" /> 
     <script src="Scripts/jquery-ui.min.js" type="text/javascript"> </script> 
     <script src="Scripts/jquery-ui.js" type="text/javascript"></script> 
     <script type="text/javascript"> 
       $(function() { 
     $('#<%= TextBox1.ClientID %>').autocomplete({ 
      source: function (request, response) { 
       $.ajax(
       { 
        url: "ChampNameService.asmx/GetChampionNames", 
        data: "{ 'Champname': '" + request.term + "' }", 
        type: "POST", 
        dataType: "json", 
        contentType: "application/json;charset=utf-8", 
        success: function (data) { 
         response(data.d); 
        }, 
        error: function (result) { 
         alert('There is a problem processing your request'); 
        } 
       }); 
      }, 
      minLength: 0 
     }); 
      }); 

     </script> 

イムJavaScriptに新しいが、私はダウンロードして、正しいファイルをインポートし、JavaScriptを変更も私自身のコードを反映しています。どのようなことが起こると予想されるのは、ユーザーがキャラクターの名前を入力すると、Webサービスから受け取った結果で自動的に完成します。これは現在行っているようではありません。 Iveは、誰かが正しい方向に私を向けることができれば、1週間で数多くの方法を試しました。

EDIT:私のwebserviceとStringの戻り値がAjax/javascriptで期待されるJsonと比較して問題が発生する可能性がありますか?

+0

ブラウザのネットワークトレース/スクリプトのデバッグウィンドウとは何ですか?また、JSONではなく、あなたのWebサービスが実際にXMLを返しています。あなたの.autocompleteハンドラが期待しているようです。これは動作しません。 WebサービスをHttpHandler(JSONを含む何かを返すことができる)またはWebAPIコントローラ(デフォルトでJSONを返す)に変換してください。 – sh1rts

+0

私はそれが問題だったと思っていましたが、わかりませんでした。私はAjax Control Toolkitを使用して終了し、それは私のためにうまくいきました。 しかし、私は好奇心が強いです。 WebサービスをHTTPHandler/WebAPIコントローラに変換するにはどうすればよいですか?これら2つのことは何ですか?どうすれば使用できますか? HTTPハンドラがブラウザからのリクエストを処理すると思いますか? – user1234700

+0

Googleはあなたの友人です。それはかなり簡単です - [MSDNのこのガイドを試してください](https://msdn.microsoft.com/en-us/library/ms227433(v = vs.100).aspx)。 AJAX Control Toolkit/UpdatePanelは使用するのに十分シンプルですが、jQuery AJAXと比較して帯域幅などに関して非常に非効率的です。 – sh1rts

答えて

1

これはWeb開発の共通要件であり、プロセスを簡素化するためにDev Expressによって提供されるコントロールがあります。 AjaxControlToolkitを使用します。そして、それを使用する例のhereの例です。

+0

それはしばらくかかりましたが、それをぐるぐる回した後、私はそれを働かせました!ありがとう! – user1234700

+0

それは素晴らしいです。問題の解決に役立った場合は、その答えを受け入れてください。乾杯! – Sam

関連する問題