找出请求发件人的身份--AJAX Auto Complete Extender

时间:2012-12-18 03:27:40

标签: c# asp.net ajax autocomplete code-reuse

这是我用作Ajax autoComplete Extender的数据源的典型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 Extenders正在请求源, 所以我可以以某种方式使用相同的方法进行多个控制。

如果我知道是谁,我可以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>

所以,如果我有一些不同的请求

我所需要的只是知道他们中的哪一个被解雇了。

感谢。

1 个答案:

答案 0 :(得分:1)

查看ContextKey属性,该属性可用于将其他信息从网页传递到网络方法。

必须修改网络方法的签名以容纳ContextKey 在这里 - http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/AutoComplete/AutoComplete.aspx