Ajax Toolkit Autocomplete fonctionne en Dev mais pas en Prod
Bonjour à tous,
Alors voilà j'ai un problème que je n'arrive pas à résoudre (et j'espère que l'un d'entre vous pourra m'aider :-)):
J'ai créé un Web Service Autocomplete.asmx, que j'appel via l'une de mes pages, et qui va chercher des données dans ma base de données. Tout fonctionne parfaitement bien sous Visual Studio 2010.
Le problème c'est que quand je passe le tout sur mon serveur (Windows Server 2008 avec IIS 7, Framework 4.0), il ne se passe strictement rien!
Bref je commence à vraiment m'arracher les cheveux! J'espère que quelqu'un pourra m'aider!!!
Code du service:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
Imports System
Imports System.Collections
Imports System.Linq
Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Xml.Linq
Imports System.Collections.Generic
Imports System.Data
Imports System.Data.SqlClient
' To allow this Web Service to be called from script, using ASP.NET AJAX,
' uncomment the following line.
<System.Web.Script.Services.ScriptService()> _
<WebService(Namespace:="http://tempuri.org/")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
Public Class AutoComplete1
Inherits System.Web.Services.WebService
Dim cn As New SqlClient.SqlConnection()
Dim ds As New DataSet
Dim dt As New DataTable
<WebMethod()> _
Public Function GetCompletionList(ByVal prefixText As String, _
ByVal count As Integer) As List(Of String)
'ADO.Net
Dim strCn As String = "Data Source=.\SQLEXPRESS;Initial Catalog=BDD;User Id=user;Password=mdp;"
cn.ConnectionString = strCn
Dim cmd As New SqlClient.SqlCommand
cmd.Connection = cn
cmd.CommandType = CommandType.Text
'Compare String From Textbox(prefixText)
'AND String From Column in DataBase(CompanyName)
'If String from DataBase is equal to String from TextBox(prefixText)
'then add it to return ItemList
'-----I defined a parameter instead of passing value
'directly to prevent SQL injection--------'
cmd.CommandText = "SELECT id_article, code FROM article Where code like @myParameter"
cmd.Parameters.AddWithValue("@myParameter", "%" + prefixText + "%")
cn.Open()
Dim customers As List(Of String) = New List(Of String)
Dim sdr As SqlDataReader = cmd.ExecuteReader
While sdr.Read
Dim item As String
item = AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem(sdr("code").ToString, sdr("id_article").ToString)
customers.Add(item)
End While
cn.Close()
Return customers
End Function
End Class |
Code de ma page:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
[...]
<asp:HiddenField ID="id_article" runat="server" />
<asp:TextBox ID="code" autocomplete ="off" AutoPostBack="true" runat="server" Width="150px" Height="20px" placeholder="Code" OnTextChanged="RemplirPrix" />
[...]
<script type = "text/javascript">
function ClientItemSelected(sender, e) {
$get("<%=id_article.ClientID %>").value = e.get_value();
}
</script>
<ajaxToolkit:AutoCompleteExtender ID="autoComplete1" runat="server"
EnableCaching="true"
BehaviorID="AutoCompleteEx"
MinimumPrefixLength="2"
TargetControlID="code"
ServicePath="AutoComplete.asmx"
ServiceMethod="GetCompletionList"
OnClientItemSelected = "ClientItemSelected"
CompletionInterval="10"
CompletionSetCount="20"
DelimiterCharacters=""
ShowOnlyCurrentWordInCompletionListItem="true">
<Animations>
<OnShow>
<Sequence>
<%-- Make the completion list transparent and then show it --%>
<OpacityAction Opacity="0" />
<HideAction Visible="true" />
<%--Cache the original size of the completion list the first time
the animation is played and then set it to zero --%>
<ScriptAction Script="// Cache the size and setup the initial size
var behavior = $find('AutoCompleteEx');
if (!behavior._height) {
var target = behavior.get_completionList();
behavior._height = target.offsetHeight - 2;
target.style.height = '0px';
}" />
<%-- Expand from 0px to the appropriate size while fading in --%>
<Parallel Duration=".4">
<FadeIn />
<Length PropertyKey="height" StartValue="0"
EndValueScript="$find('AutoCompleteEx')._height" />
</Parallel>
</Sequence>
</OnShow>
<OnHide>
<%-- Collapse down to 0px and fade out --%>
<Parallel Duration=".4">
<FadeOut />
<Length PropertyKey="height" StartValueScript=
"$find('AutoCompleteEx')._height" EndValue="0" />
</Parallel>
</OnHide>
</Animations>
</ajaxToolkit:AutoCompleteExtender> |