您的位置:首页 > 其它

ajaxToolkit:AutoCompleteExtender的自定义参数(contextKey)

2011-03-01 10:25 351 查看
它的基本用法请参阅我的另一篇文章ajaxToolkit:AutoCompleteExtender 用法详解,由于它的ServiceMethod 的参数形式是固定的, 所以没办法任意地添加自定义参数,这个方法共有两个重载形式:

public string[] ServiceMethod (string prefixText, int count)
public string[] ServiceMethod (string prefixText, int count,string contextKey)

其中第一个是基本用法,第二个多了个contextKey 参数,即可以让用户传递自己定义的参数的, 例如,我希望调用该方法时, 把页面上一个dropDownList 的值传过去, 示例如下:

<asp:TextBox ID="txtPersonInfo" runat="server" CssClass="TextBoxXW" onkeydown="return OnTxtPersonInfoKeyDown();"></asp:TextBox>

<ajaxToolkit:AutoCompleteExtender runat="server" ID="acName" TargetControlID="txtPersonInfo" ServicePath="cppw_Input_Ry.asmx" ServiceMethod="GetPersonInfoList" MinimumPrefixLength="1" CompletionInterval="1000"EnableCaching="true" CompletionSetCount="20" CompletionListCssClass="autocomplete_completionListElement"CompletionListItemCssClass="autocomplete_listItem"CompletionListHighlightedItemCssClass="autocomplete_highlightedListItem" DelimiterCharacters=";, :" />

function OnTxtPersonInfoKeyDown()

{

var ddlBz=document.getElementById("<%=ddlBz.ClientID %>");

var acNameClientId="<%=acName.ClientID %>";

var acName=$find(acNameClientId);

if(acName!=null)

acName.set_contextKey(ddlBz.options[ddlBz.selectedIndex].value);

}

关键在于js 函数的最后一句,即在回传之前,设置它的值。

关于AutoCompleteExtender, 我还有另外一篇文章: ajaxToolkit:AutoCompleteExtender 的触发选择(选中)事件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: