0

これは、Ajax autoComplete Extender の dataSource として使用している典型的な webMethod です。

[System.Web.Script.Services.ScriptMethod()]
[System.Web.Services.WebMethod(EnableSession = true)]

public static List<string> FontNamesList_AutoCompDataSrc(string prefixText)
{ 

    if (SeSn.CurrentSesionVariablsSet.FontList.Count == 0)
    {
        FntsList = ReflectMeths.anyClassFldsAsListByType<fntNamsClss>();

        SeSn.CurrentSesionVariablsSet.FontList = FontsList;
        SeSn.AddToCurrentSesseionVars(App.VariablesNames.FontsList,
            SeSn.CurrentSesionVariablsSet.Fontlist);
    }
    else
    {
        if (SeSn.VarExist(App.VariablesNames.FontsList))
             FontsList= SesnGetValAs.ListStr(App.VariableNames.FontsList);

        else FontsList= SeSn.CurrentSesionVariablsSet.FontList;
    }


    return AutoComplete.FromListStr(prefixText, FontsList);
}

したがって、このメソッドは aspx ページで AutoCompleteExtendr を提供します。

どの ajax AC Extender がソースを要求しているかを調べたいので、どうにかして複数のコントロールに同じメソッドを使用できます。

それが誰であるがわかればswitch、その身元を調べて、サービスを要求したオブジェクトに基づいて他のアクションを実行できます。

私の悪い英語がはっきりしているといいのですが...

これは.aspxファイルのコントロールの例です

<cc1:ToolkitScriptManager ID="ToolKitScrptMan1" runat="server"></cc1:ToolkitScriptManager>

<cc1:AutoCompleteExtender ID="AutoCompleteExtender1" TargetControlID="TBX_FntsAC" runat="server"
                         MinimumPrefixLength="1" EnableCaching="true" CompletionSetCount="1"
                         CompletionInterval="100" ServiceMethod="FontNamesList_AutoCompDataSrc" 
                         FirstRowSelected="true" CompletionListCssClass="CL_Css_DataBase" CompletionListItemCssClass="CL_ItemCss_DataBase" CompletionListHighlightedItemCssClass="CL_tHighlightedItemCss_DataBase">
</cc1:AutoCompleteExtender>

したがって、いくつかの異なる要求を持つそれらのいくつかがある場合

私が必要とするのは、それらのどれが解雇されたかを知ることだけです。

ありがとう。

4

1 に答える 1

1

プロパティを見てみましょうContextKey。これを使用して、Web ページから Web メソッドに追加情報を渡すことができます。

に対応するために、webmethod の署名を変更する必要がありContextKeyます。
ここ - http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/AutoComplete/AutoComplete.aspx

于 2012-12-18T07:57:36.523 に答える