0

機能を使いたいAjaxToolKit AutoComplete。タグの構文は次のとおりです。

<ajaxToolkit:AutoCompleteExtender ID="autoComplete1" runat="server"
  EnableCaching="true"
  BehaviorID="AutoCompleteEx"
  MinimumPrefixLength="2"
  TargetControlID="myTextBox"
  ServicePath="AutoComplete.asmx"
  ServiceMethod="GetCompletionList" 
  CompletionInterval="1000"  
  CompletionSetCount="20"
  CompletionListCssClass="autocomplete_completionListElement"
  CompletionListItemCssClass="autocomplete_listItem"
  CompletionListHighlightedItemCssClass="autocomplete_highlightedListItem"
  DelimiterCharacters=";, :"
  ShowOnlyCurrentWordInCompletionListItem="true">
  <!-- Some formatting code -->
</ajaxToolkit:AutoCompleteExtender>

タグがデータをフェッチするのに役立つ属性 ServicePath と ServiceMethod があります。ServiceMethod にはスキーマがあります。

[WebMethod]
public string[] GetCompletionList(string prefixText, int count)

このメソッドは、2 つのパラメーターのみを想定しています。一部のビジネス ロジック要件では、メソッドに 3 つのパラメーターを次のように送信します。

[WebMethod]
public string[] GetCompletionList(string type, string prefixText, int count)

この 3 番目のパラメーターを渡し、処理のためにサービス メソッドで受け入れるにはどうすればよいですか。私の結果は、この型パラメーターに依存します。どうすればこれを達成できますか?前もって感謝します。

4

2 に答える 2

1

3 番目の引数として contextKey を渡すことができます。

ajaxToolkit:AutoCompleteExtender を設定するときは、キーと値のペア UseContextKey="True" を追加します。

<ajaxToolkit:AutoCompleteExtender ID="autoComplete1" runat="server"
  UseContextKey="True"
  EnableCaching="true"
  BehaviorID="AutoCompleteEx"
  MinimumPrefixLength="2"
  TargetControlID="myTextBox"
  ServicePath="AutoComplete.asmx"
  ServiceMethod="GetCompletionList" 
  CompletionInterval="1000"  
  CompletionSetCount="20"
  CompletionListCssClass="autocomplete_completionListElement"
  CompletionListItemCssClass="autocomplete_listItem"
  CompletionListHighlightedItemCssClass="autocomplete_highlightedListItem"
  DelimiterCharacters=";, :"
  ShowOnlyCurrentWordInCompletionListItem="true">
  <!-- Some formatting code -->
</ajaxToolkit:AutoCompleteExtender>

サービスメソッドが呼び出される前に、必要な文字列にコンテキストを設定します。

function setContextKey() {
    text = 'my type information';
    $find('<%=autoComplete1.ClientID%>').set_contextKey(text);
}

次に、コード ビハインドで、その contextKey にアクセスできます。

[System.Web.Services.WebMethodAttribute(), System.Web.Script.Services.ScriptMethodAttribute()]
public static string[] GetCompletionList(string prefixText, int count, string contextKey)
{
    string myType = contextKey;
}
于 2014-10-17T22:50:19.590 に答える
0

3 番目のパラメーターを追加することはできません。ただし、静的メソッドにいるため、 からアクセスすることで、Sessionまたはに保存してから取得することで、このパラメーター情報を読み取ることができます。RequestHttpContext.Current

于 2013-02-28T14:15:11.493 に答える