使用Javascript将下拉选择值添加到自动完成控件的ContextKey

使用Javascript将下拉选择值添加到自动完成控件的ContextKey,javascript,asp.net,ajaxcontroltoolkit,Javascript,Asp.net,Ajaxcontroltoolkit,我的web表单上有一个下拉列表和一个带有自动完成扩展器的文本框。 现在我需要从java脚本中设置auto completed extender的ContextKey属性。 我试图在onkeyup文本框的事件上使用java脚本设置ContextKey属性。但它不起作用 .aspx代码 .cs代码(服务代码) [WebMethod] public string[]GetRelailerList(字符串前缀、整数计数、字符串上下文键) { 数据集ds=新数据集(); ds=clsTransacti

我的web表单上有一个
下拉列表
和一个带有
自动完成扩展器的
文本框
。 现在我需要从java脚本中设置
auto completed extender
ContextKey
属性。 我试图在
onkeyup
文本框的
事件上使用
java脚本
设置
ContextKey
属性。但它不起作用

.aspx代码

.cs代码(服务代码)
[WebMethod]
public string[]GetRelailerList(字符串前缀、整数计数、字符串上下文键)
{
数据集ds=新数据集();
ds=clsTransaction.Select(“从tblReseller中选择nm作为名称,其中nm类似于“'+prefixText+“%”和wsid=“'+contextKey+””,
DataSendBSSWEB.ServerDbEnum.MainSqlServer,
假);
//然后返回字符串列表(txtItems)作为结果
List txtItems=新列表();
字符串值;
foreach(ds.Tables[0].行中的DataRow行)
{
dbValues=row[“Name”].ToString();
txtItems.Add(dbValues);
}
返回txtItems.ToArray();
}
javascript代码

函数SetContextKey(){
$find(“”).set_contextKey($get(“”.value);
}

任何人都可以告诉我如何使用
java脚本

扩展程序的目标控件id应该是文本框的id,而不是下拉列表的id。

很抱歉,我犯了一个错误并更新了它。您对我的问题有任何答案吗?不幸的是,没有。我在JavaScript方面遇到了完全相同的问题。然后,我在服务器上设置它(ddl on change事件)。将它们包装在更新面板中以避免完全回发。
<table>
    <tr>
        <td style="width:100px;">
            <asp:Label ID="Label1" CssClass="lbl" runat="server" Text="Server:"></asp:Label>
        </td>
        <td colspan="4">
            <asp:DropDownList ID="DropDownList1" CssClass="Comb" runat="server" 
                OnSelectedIndexChanged="ddlServer_SelectedIndexChanged" AutoPostBack="true">
            </asp:DropDownList>
        </td>
    </tr>
    <tr>
        <td>
            <asp:Label ID="Label2" CssClass="lbl" runat="server" Text="Originating:"></asp:Label>
        </td>
        <td colspan="4">
            <asp:TextBox runat="server" ID="TextBox1" CssClass="tb10" autocomplete="off" onkeyup="SetContextKey()"/>
            <ajaxToolkit:AutoCompleteExtender TargetControlID="TextBox1" UseContextKey="true"
                runat="server" BehaviorID="AutoCompleteEx" ID="AutoCompleteExtender1" 
                ServicePath="AutoComplete.asmx" ServiceMethod="GetResellerList"
                MinimumPrefixLength="1" CompletionInterval="1000" EnableCaching="true" FirstRowSelected="true"
                CompletionSetCount="20" CompletionListCssClass="cssList" DelimiterCharacters=";, :"
                ShowOnlyCurrentWordInCompletionListItem="true" OnClientHiding="OnClientCompleted"
                OnClientPopulated="OnClientCompleted" OnClientPopulating="OnClientPopulating">
            </ajaxToolkit:AutoCompleteExtender>
        </td>
    </tr>
</table>
[WebMethod]
public string[] GetResellerList(string prefixText, int count, string contextKey)
{
    DataSet ds = new DataSet();
    ds = clsTransaction.Select("SELECT nm AS Name FROM tblReseller WHERE nm LIKE '" + prefixText + "%' AND wsid = '" + contextKey + "'",
        DataSendBSSWEB.ServerDbEnum.MainSqlServer,
        false);

    //Then return List of string(txtItems) as result
    List<string> txtItems = new List<string>();
    String dbValues;

    foreach (DataRow row in ds.Tables[0].Rows)
    {
        dbValues = row["Name"].ToString();
        txtItems.Add(dbValues);
    }

    return txtItems.ToArray();
}
<script type="text/javascript">
    function SetContextKey() {
        $find('<%=autoComplete2.ClientID%>').set_contextKey($get("<%=ddlServer.ClientID %>").value);
    }
</script>