使用Javascript将下拉选择值添加到自动完成控件的ContextKey
我的web表单上有一个使用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
下拉列表
和一个带有自动完成扩展器的文本框
。
现在我需要从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>