使用Javascript将DropDown-Selectedvalue添加到自动完成控件的ContextKey

时间:2013-08-22 06:57:13

标签: javascript asp.net ajaxcontroltoolkit

我的网络表单上有Drop-down-listText-box auto-completed extender。 现在我需要从java-script设置ContextKey auto-completed extender属性。 我正在ContextKey事件java-script上使用onkeyup设置text-box属性。但它不起作用

.aspx代码

<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>

.cs代码(服务代码)

[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();
}

javascript代码

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

任何人都可以告诉我如何使用java-script

1 个答案:

答案 0 :(得分:0)

扩展器的目标控件ID应该是TextBox Is,而不是下拉。