0

这是我用作 Ajax 自动完成扩展器的数据源的典型 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 方法。

必须修改 webmethod 的签名以适应ContextKey.
这里 - http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/AutoComplete/AutoComplete.aspx

于 2012-12-18T07:57:36.523 回答