I'm trying to pass a static value (from a list box) into an
Autocomplete Extender. I've had Autocomplete working with just the
prefixText but can not get it to work when passing an extra parameter
through the contextKey.
Please see below:
On Page Load:
(the 'lstUserID' holds the ID of the group logged in)
the autoComplete Extender:
<cc1:AutoCompleteExtender
ServiceMethod="SearchNino"
MinimumPrefixLength="2"
CompletionInterval="100"
EnableCaching="false"
CompletionSetCount="10"
TargetControlID="txtNinoSearch"
ID="AutoCompleteExtender1"
runat="server"
FirstRowSelected = "false"
UseContextKey="True"
>
Here's the method..
Please see below:
On Page Load:
AutoCompleteExtender1.ContextKey = lstUserID.SelectedValue
(the 'lstUserID' holds the ID of the group logged in)
the autoComplete Extender:
<cc1:AutoCompleteExtender
ServiceMethod="SearchNino"
MinimumPrefixLength="2"
CompletionInterval="100"
EnableCaching="false"
CompletionSetCount="10"
TargetControlID="txtNinoSearch"
ID="AutoCompleteExtender1"
runat="server"
FirstRowSelected = "false"
UseContextKey="True"
>
Here's the method..
<System.Web.Script.Services.ScriptMethod(), _ System.Web.Services.WebMethod()> _ Public Shared Function SearchNINO(ByVal prefixText As String, ByVal count As Integer, ByVal contextKey As String) As List(Of String) Dim conn As SqlConnection = New SqlConnection conn.ConnectionString = ConfigurationManager _ .ConnectionStrings("employersConnectionString").ConnectionString Dim cmd As SqlCommand = New SqlCommand cmd.CommandText = "select NINO from table where" & _ " ((NINO like @SearchText + '%') AND (Emp_Code = contextKey)) Group By NINO" cmd.Parameters.AddWithValue("@SearchText", prefixText) cmd.Connection = conn conn.Open() Dim NINO As List(Of String) = New List(Of String) Dim sdr As SqlDataReader = cmd.ExecuteReader While sdr.Read PayRef.Add(sdr("NINO").ToString) End While conn.Close() Return NINO End function
C# Code:
<asp:ToolkitScriptManager runat="server" ID="TSM"> </asp:ToolkitScriptManager> <script type="text/javascript"> function pageLoad(sender, e) { var o = $find("ACE1"); o.add_populating(function () { o.set_contextKey($get("<%=TxtPara1.ClientID %>").value + "|" + $get("<%=TxtPara2.ClientID %>").value); }); } </script> para1: <asp:TextBox runat="server" ID="TxtPara1"></asp:TextBox><br /> para2: <asp:TextBox runat="server" ID="TxtPara2"></asp:TextBox><br /> AutoCompleteTextBox: <asp:TextBox runat="server" ID="auto"></asp:TextBox> <asp:AutoCompleteExtender runat="server" ID="ACE1" MinimumPrefixLength="1" TargetControlID="auto" UseContextKey="true" ServicePath="service.asmx" ServiceMethod="AutoMethod"> </asp:AutoCompleteExtender>
Webservice
[WebMethod] public static string[] AutoMethod(string prefixText, int count, string contextKey) { string[] paras = contextKey.Split('|'); List<string> rsl = new List<string>(); rsl.Add("para1:" + paras[0]); rsl.Add("para2:" + paras[1]); return rsl.ToArray(); }
No comments:
Post a Comment