469,361 Members | 2,391 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,361 developers. It's quick & easy.

AJAX - AutoCompleteExtender ASP.Net 2.0 (Page Method vs. Web Servi

I have tied an AutoCompleteExtender to a textbox to indicate suggestions to
the user. Everything works fine if I utilize a webservice to fetch the
results. However, I want to put the web service code into a page method. I
have run the debugger only to find that the [WebMethod] is never entered.
Here are some of the things I have already tried with no success. It appears
that this is a common problem.

-Added the [WebMethod] attribute to the top of the code-behind method.
-Added/removed "Static" as part of the public method definition.
-Removed the "ServicePath" attribute from the AutoCompleteExtender .aspx page.

My textbox and extender control are embedded into a user control(.ascx) that
is placed within a ContentPanel inherited from a MasterPage. I'm not sure if
this could be part of the problem. As I view the browser source code, the
javascript renders the "ServicePath" to be looking by default at my aspx
page, but my [WebMethod] lives in pagename.ascx.cs. Also, I have tried
including "ServicePath=pagename.ascx.cs" and still no luck.

At this point, I don't know what else to try. The main reason I'm wanting
to move to a page method is because I need access to controls which aren't
available to the web service. Also, I don't think my needs here constitute
the need for a web service.

Any help would be greatly appreciated!

Thanks,

Trent
Feb 9 '07 #1
11 15882
Hello,

you'll have to specify the [ScriptMethod] attribute in addition to the
[WebService] attribute.

Best regards,
Henning Krause

"Trent" <Tr***@discussions.microsoft.comwrote in message
news:70**********************************@microsof t.com...
>I have tied an AutoCompleteExtender to a textbox to indicate suggestions to
the user. Everything works fine if I utilize a webservice to fetch the
results. However, I want to put the web service code into a page method.
I
have run the debugger only to find that the [WebMethod] is never entered.
Here are some of the things I have already tried with no success. It
appears
that this is a common problem.

-Added the [WebMethod] attribute to the top of the code-behind method.
-Added/removed "Static" as part of the public method definition.
-Removed the "ServicePath" attribute from the AutoCompleteExtender .aspx
page.

My textbox and extender control are embedded into a user control(.ascx)
that
is placed within a ContentPanel inherited from a MasterPage. I'm not sure
if
this could be part of the problem. As I view the browser source code, the
javascript renders the "ServicePath" to be looking by default at my aspx
page, but my [WebMethod] lives in pagename.ascx.cs. Also, I have tried
including "ServicePath=pagename.ascx.cs" and still no luck.

At this point, I don't know what else to try. The main reason I'm wanting
to move to a page method is because I need access to controls which aren't
available to the web service. Also, I don't think my needs here
constitute
the need for a web service.

Any help would be greatly appreciated!

Thanks,

Trent
Feb 9 '07 #2
I applied [ScriptMethod] immediately after [WebService] and that didn't fix
it. Any other thoughts? Thanks!

"Henning Krause [MVP - Exchange]" wrote:
Hello,

you'll have to specify the [ScriptMethod] attribute in addition to the
[WebService] attribute.

Best regards,
Henning Krause

"Trent" <Tr***@discussions.microsoft.comwrote in message
news:70**********************************@microsof t.com...
I have tied an AutoCompleteExtender to a textbox to indicate suggestions to
the user. Everything works fine if I utilize a webservice to fetch the
results. However, I want to put the web service code into a page method.
I
have run the debugger only to find that the [WebMethod] is never entered.
Here are some of the things I have already tried with no success. It
appears
that this is a common problem.

-Added the [WebMethod] attribute to the top of the code-behind method.
-Added/removed "Static" as part of the public method definition.
-Removed the "ServicePath" attribute from the AutoCompleteExtender .aspx
page.

My textbox and extender control are embedded into a user control(.ascx)
that
is placed within a ContentPanel inherited from a MasterPage. I'm not sure
if
this could be part of the problem. As I view the browser source code, the
javascript renders the "ServicePath" to be looking by default at my aspx
page, but my [WebMethod] lives in pagename.ascx.cs. Also, I have tried
including "ServicePath=pagename.ascx.cs" and still no luck.

At this point, I don't know what else to try. The main reason I'm wanting
to move to a page method is because I need access to controls which aren't
available to the web service. Also, I don't think my needs here
constitute
the need for a web service.

Any help would be greatly appreciated!

Thanks,

Trent

Feb 9 '07 #3
Hello,

I've a working autocomplete extender using this schema:

In Codebehind:

[WebMethod]
[ScriptMethod]
public static string MyMethod(string contextKey)
{}

In aspx site:

<ajaxToolkit:AutoCompleteExtender runat="server"
ID="tbAutoCompleteExtender" TargetControlID="tbTextBox"
ServiceMethod="MyMethod"
MinimumPrefixLength="2" CompletionInterval="1000"
EnableCaching="true"
CompletionSetCount="12" />

Note that code-behind method must be in the .aspx file, even if the
autocomplete extender is in a usercontrol.

Do you have the latest version of the Ajax toolkit installed? It's from
february... so only a few days old.

Best regards,
Henning Krause
"Trent" <Tr***@discussions.microsoft.comwrote in message
news:F2**********************************@microsof t.com...
>I applied [ScriptMethod] immediately after [WebService] and that didn't fix
it. Any other thoughts? Thanks!

"Henning Krause [MVP - Exchange]" wrote:
>Hello,

you'll have to specify the [ScriptMethod] attribute in addition to the
[WebService] attribute.

Best regards,
Henning Krause

"Trent" <Tr***@discussions.microsoft.comwrote in message
news:70**********************************@microso ft.com...
>I have tied an AutoCompleteExtender to a textbox to indicate suggestions
to
the user. Everything works fine if I utilize a webservice to fetch the
results. However, I want to put the web service code into a page
method.
I
have run the debugger only to find that the [WebMethod] is never
entered.
Here are some of the things I have already tried with no success. It
appears
that this is a common problem.

-Added the [WebMethod] attribute to the top of the code-behind method.
-Added/removed "Static" as part of the public method definition.
-Removed the "ServicePath" attribute from the AutoCompleteExtender
.aspx
page.

My textbox and extender control are embedded into a user control(.ascx)
that
is placed within a ContentPanel inherited from a MasterPage. I'm not
sure
if
this could be part of the problem. As I view the browser source code,
the
javascript renders the "ServicePath" to be looking by default at my
aspx
page, but my [WebMethod] lives in pagename.ascx.cs. Also, I have tried
including "ServicePath=pagename.ascx.cs" and still no luck.

At this point, I don't know what else to try. The main reason I'm
wanting
to move to a page method is because I need access to controls which
aren't
available to the web service. Also, I don't think my needs here
constitute
the need for a web service.

Any help would be greatly appreciated!

Thanks,

Trent

Feb 9 '07 #4
Of course, the method signature in the code-behind file must be:

[WebMethod]
[ScriptMethod]
public static string[] MyMethod(string prefixText, int count)

Best regards,
Henning Krause
"Henning Krause [MVP - Exchange]" <ne***************@this.infinitec.de>
wrote in message news:e1**************@TK2MSFTNGP02.phx.gbl...
Hello,

I've a working autocomplete extender using this schema:

In Codebehind:

[WebMethod]
[ScriptMethod]
public static string MyMethod(string contextKey)
{}

In aspx site:

<ajaxToolkit:AutoCompleteExtender runat="server"
ID="tbAutoCompleteExtender" TargetControlID="tbTextBox"

ServiceMethod="MyMethod" MinimumPrefixLength="2" CompletionInterval="1000"
EnableCaching="true"
CompletionSetCount="12" />

Note that code-behind method must be in the .aspx file, even if the
autocomplete extender is in a usercontrol.

Do you have the latest version of the Ajax toolkit installed? It's from
february... so only a few days old.

Best regards,
Henning Krause
"Trent" <Tr***@discussions.microsoft.comwrote in message
news:F2**********************************@microsof t.com...
>>I applied [ScriptMethod] immediately after [WebService] and that didn't
fix
it. Any other thoughts? Thanks!

"Henning Krause [MVP - Exchange]" wrote:
>>Hello,

you'll have to specify the [ScriptMethod] attribute in addition to the
[WebService] attribute.

Best regards,
Henning Krause

"Trent" <Tr***@discussions.microsoft.comwrote in message
news:70**********************************@micros oft.com...
I have tied an AutoCompleteExtender to a textbox to indicate
suggestions to
the user. Everything works fine if I utilize a webservice to fetch
the
results. However, I want to put the web service code into a page
method.
I
have run the debugger only to find that the [WebMethod] is never
entered.
Here are some of the things I have already tried with no success. It
appears
that this is a common problem.

-Added the [WebMethod] attribute to the top of the code-behind method.
-Added/removed "Static" as part of the public method definition.
-Removed the "ServicePath" attribute from the AutoCompleteExtender
.aspx
page.

My textbox and extender control are embedded into a user
control(.ascx)
that
is placed within a ContentPanel inherited from a MasterPage. I'm not
sure
if
this could be part of the problem. As I view the browser source code,
the
javascript renders the "ServicePath" to be looking by default at my
aspx
page, but my [WebMethod] lives in pagename.ascx.cs. Also, I have
tried
including "ServicePath=pagename.ascx.cs" and still no luck.

At this point, I don't know what else to try. The main reason I'm
wanting
to move to a page method is because I need access to controls which
aren't
available to the web service. Also, I don't think my needs here
constitute
the need for a web service.

Any help would be greatly appreciated!

Thanks,

Trent

Feb 9 '07 #5
Hi Henning,

I have downloaded the February 6 version of toolkit, removed the toolkit
from the toolbox, re-added it, and removed the dll/pdb and readded the
reference as well. My codebehind is in pagename.aspx.cs, rather than being
in pagename.ascx.cs. When I type into my textbox, a popup does appear and it
contains "undefined", "undefined", "undefined", "undefined", "undefined"
which goes on and on seems like forever. If I set a breakpoint in the
"suggestion" codebehind method, it never breaks.

Thanks!

"Henning Krause [MVP - Exchange]" wrote:
Hello,

I've a working autocomplete extender using this schema:

In Codebehind:

[WebMethod]
[ScriptMethod]
public static string MyMethod(string contextKey)
{}

In aspx site:

<ajaxToolkit:AutoCompleteExtender runat="server"
ID="tbAutoCompleteExtender" TargetControlID="tbTextBox"
ServiceMethod="MyMethod"
MinimumPrefixLength="2" CompletionInterval="1000"
EnableCaching="true"
CompletionSetCount="12" />

Note that code-behind method must be in the .aspx file, even if the
autocomplete extender is in a usercontrol.

Do you have the latest version of the Ajax toolkit installed? It's from
february... so only a few days old.

Best regards,
Henning Krause
"Trent" <Tr***@discussions.microsoft.comwrote in message
news:F2**********************************@microsof t.com...
I applied [ScriptMethod] immediately after [WebService] and that didn't fix
it. Any other thoughts? Thanks!

"Henning Krause [MVP - Exchange]" wrote:
Hello,

you'll have to specify the [ScriptMethod] attribute in addition to the
[WebService] attribute.

Best regards,
Henning Krause

"Trent" <Tr***@discussions.microsoft.comwrote in message
news:70**********************************@microsof t.com...
I have tied an AutoCompleteExtender to a textbox to indicate suggestions
to
the user. Everything works fine if I utilize a webservice to fetch the
results. However, I want to put the web service code into a page
method.
I
have run the debugger only to find that the [WebMethod] is never
entered.
Here are some of the things I have already tried with no success. It
appears
that this is a common problem.

-Added the [WebMethod] attribute to the top of the code-behind method.
-Added/removed "Static" as part of the public method definition.
-Removed the "ServicePath" attribute from the AutoCompleteExtender
.aspx
page.

My textbox and extender control are embedded into a user control(.ascx)
that
is placed within a ContentPanel inherited from a MasterPage. I'm not
sure
if
this could be part of the problem. As I view the browser source code,
the
javascript renders the "ServicePath" to be looking by default at my
aspx
page, but my [WebMethod] lives in pagename.ascx.cs. Also, I have tried
including "ServicePath=pagename.ascx.cs" and still no luck.

At this point, I don't know what else to try. The main reason I'm
wanting
to move to a page method is because I need access to controls which
aren't
available to the web service. Also, I don't think my needs here
constitute
the need for a web service.

Any help would be greatly appreciated!

Thanks,

Trent


Feb 9 '07 #6
Hello,

do you have enabled the property EnablePageMethods on the ScriptManager in
your aspx file?

Best regards,
Henning Krause

"Trent" <Tr***@discussions.microsoft.comwrote in message
news:58**********************************@microsof t.com...
Hi Henning,

I have downloaded the February 6 version of toolkit, removed the toolkit
from the toolbox, re-added it, and removed the dll/pdb and readded the
reference as well. My codebehind is in pagename.aspx.cs, rather than
being
in pagename.ascx.cs. When I type into my textbox, a popup does appear and
it
contains "undefined", "undefined", "undefined", "undefined", "undefined"
which goes on and on seems like forever. If I set a breakpoint in the
"suggestion" codebehind method, it never breaks.

Thanks!

"Henning Krause [MVP - Exchange]" wrote:
>Hello,

I've a working autocomplete extender using this schema:

In Codebehind:

[WebMethod]
[ScriptMethod]
public static string MyMethod(string contextKey)
{}

In aspx site:

<ajaxToolkit:AutoCompleteExtender runat="server"
ID="tbAutoCompleteExtender" TargetControlID="tbTextBox"

ServiceMethod="MyMethod"
MinimumPrefixLength="2" CompletionInterval="1000"
EnableCaching="true"
CompletionSetCount="12" />

Note that code-behind method must be in the .aspx file, even if the
autocomplete extender is in a usercontrol.

Do you have the latest version of the Ajax toolkit installed? It's from
february... so only a few days old.

Best regards,
Henning Krause
"Trent" <Tr***@discussions.microsoft.comwrote in message
news:F2**********************************@microso ft.com...
>I applied [ScriptMethod] immediately after [WebService] and that didn't
fix
it. Any other thoughts? Thanks!

"Henning Krause [MVP - Exchange]" wrote:

Hello,

you'll have to specify the [ScriptMethod] attribute in addition to the
[WebService] attribute.

Best regards,
Henning Krause

"Trent" <Tr***@discussions.microsoft.comwrote in message
news:70**********************************@microso ft.com...
I have tied an AutoCompleteExtender to a textbox to indicate
suggestions
to
the user. Everything works fine if I utilize a webservice to fetch
the
results. However, I want to put the web service code into a page
method.
I
have run the debugger only to find that the [WebMethod] is never
entered.
Here are some of the things I have already tried with no success.
It
appears
that this is a common problem.

-Added the [WebMethod] attribute to the top of the code-behind
method.
-Added/removed "Static" as part of the public method definition.
-Removed the "ServicePath" attribute from the AutoCompleteExtender
.aspx
page.

My textbox and extender control are embedded into a user
control(.ascx)
that
is placed within a ContentPanel inherited from a MasterPage. I'm
not
sure
if
this could be part of the problem. As I view the browser source
code,
the
javascript renders the "ServicePath" to be looking by default at my
aspx
page, but my [WebMethod] lives in pagename.ascx.cs. Also, I have
tried
including "ServicePath=pagename.ascx.cs" and still no luck.

At this point, I don't know what else to try. The main reason I'm
wanting
to move to a page method is because I need access to controls which
aren't
available to the web service. Also, I don't think my needs here
constitute
the need for a web service.

Any help would be greatly appreciated!

Thanks,

Trent


Feb 9 '07 #7
Yessir, I do!

"Henning Krause [MVP - Exchange]" wrote:
Hello,

do you have enabled the property EnablePageMethods on the ScriptManager in
your aspx file?

Best regards,
Henning Krause

"Trent" <Tr***@discussions.microsoft.comwrote in message
news:58**********************************@microsof t.com...
Hi Henning,

I have downloaded the February 6 version of toolkit, removed the toolkit
from the toolbox, re-added it, and removed the dll/pdb and readded the
reference as well. My codebehind is in pagename.aspx.cs, rather than
being
in pagename.ascx.cs. When I type into my textbox, a popup does appear and
it
contains "undefined", "undefined", "undefined", "undefined", "undefined"
which goes on and on seems like forever. If I set a breakpoint in the
"suggestion" codebehind method, it never breaks.

Thanks!

"Henning Krause [MVP - Exchange]" wrote:
Hello,

I've a working autocomplete extender using this schema:

In Codebehind:

[WebMethod]
[ScriptMethod]
public static string MyMethod(string contextKey)
{}

In aspx site:

<ajaxToolkit:AutoCompleteExtender runat="server"
ID="tbAutoCompleteExtender" TargetControlID="tbTextBox"

ServiceMethod="MyMethod"
MinimumPrefixLength="2" CompletionInterval="1000"
EnableCaching="true"
CompletionSetCount="12" />

Note that code-behind method must be in the .aspx file, even if the
autocomplete extender is in a usercontrol.

Do you have the latest version of the Ajax toolkit installed? It's from
february... so only a few days old.

Best regards,
Henning Krause
"Trent" <Tr***@discussions.microsoft.comwrote in message
news:F2**********************************@microsof t.com...
I applied [ScriptMethod] immediately after [WebService] and that didn't
fix
it. Any other thoughts? Thanks!

"Henning Krause [MVP - Exchange]" wrote:

Hello,

you'll have to specify the [ScriptMethod] attribute in addition to the
[WebService] attribute.

Best regards,
Henning Krause

"Trent" <Tr***@discussions.microsoft.comwrote in message
news:70**********************************@microsof t.com...
I have tied an AutoCompleteExtender to a textbox to indicate
suggestions
to
the user. Everything works fine if I utilize a webservice to fetch
the
results. However, I want to put the web service code into a page
method.
I
have run the debugger only to find that the [WebMethod] is never
entered.
Here are some of the things I have already tried with no success.
It
appears
that this is a common problem.

-Added the [WebMethod] attribute to the top of the code-behind
method.
-Added/removed "Static" as part of the public method definition.
-Removed the "ServicePath" attribute from the AutoCompleteExtender
.aspx
page.

My textbox and extender control are embedded into a user
control(.ascx)
that
is placed within a ContentPanel inherited from a MasterPage. I'm
not
sure
if
this could be part of the problem. As I view the browser source
code,
the
javascript renders the "ServicePath" to be looking by default at my
aspx
page, but my [WebMethod] lives in pagename.ascx.cs. Also, I have
tried
including "ServicePath=pagename.ascx.cs" and still no luck.

At this point, I don't know what else to try. The main reason I'm
wanting
to move to a page method is because I need access to controls which
aren't
available to the web service. Also, I don't think my needs here
constitute
the need for a web service.

Any help would be greatly appreciated!

Thanks,

Trent


Feb 9 '07 #8
Here is my code.

**********pagename.ascx
<asp:ScriptManager ID="ScriptManager1" runat="server"
EnablePageMethods="true">

</asp:ScriptManager>
<cc1:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server"
TargetControlID="txtDestination"
CompletionSetCount="10"
MinimumPrefixLength="1"
EnableCaching="true"
ServiceMethod="GetDest"/>

**********pagename.aspx.cs
[WebMethod]
[ScriptMethod]
public static string[] GetDest(string prefixText, int count)
{

string[] result;
result = new string[4];
result[0] = prefixText + "AAAAAAAA";
result[1] = prefixText + "DDDDDDDD";
result[2] = prefixText + "MMMMMMMM";
result[3] = prefixText + "VVVVVVVV";
return result;
}

"Henning Krause [MVP - Exchange]" wrote:
Hello,

do you have enabled the property EnablePageMethods on the ScriptManager in
your aspx file?

Best regards,
Henning Krause

"Trent" <Tr***@discussions.microsoft.comwrote in message
news:58**********************************@microsof t.com...
Hi Henning,

I have downloaded the February 6 version of toolkit, removed the toolkit
from the toolbox, re-added it, and removed the dll/pdb and readded the
reference as well. My codebehind is in pagename.aspx.cs, rather than
being
in pagename.ascx.cs. When I type into my textbox, a popup does appear and
it
contains "undefined", "undefined", "undefined", "undefined", "undefined"
which goes on and on seems like forever. If I set a breakpoint in the
"suggestion" codebehind method, it never breaks.

Thanks!

"Henning Krause [MVP - Exchange]" wrote:
Hello,

I've a working autocomplete extender using this schema:

In Codebehind:

[WebMethod]
[ScriptMethod]
public static string MyMethod(string contextKey)
{}

In aspx site:

<ajaxToolkit:AutoCompleteExtender runat="server"
ID="tbAutoCompleteExtender" TargetControlID="tbTextBox"

ServiceMethod="MyMethod"
MinimumPrefixLength="2" CompletionInterval="1000"
EnableCaching="true"
CompletionSetCount="12" />

Note that code-behind method must be in the .aspx file, even if the
autocomplete extender is in a usercontrol.

Do you have the latest version of the Ajax toolkit installed? It's from
february... so only a few days old.

Best regards,
Henning Krause
"Trent" <Tr***@discussions.microsoft.comwrote in message
news:F2**********************************@microsof t.com...
I applied [ScriptMethod] immediately after [WebService] and that didn't
fix
it. Any other thoughts? Thanks!

"Henning Krause [MVP - Exchange]" wrote:

Hello,

you'll have to specify the [ScriptMethod] attribute in addition to the
[WebService] attribute.

Best regards,
Henning Krause

"Trent" <Tr***@discussions.microsoft.comwrote in message
news:70**********************************@microsof t.com...
I have tied an AutoCompleteExtender to a textbox to indicate
suggestions
to
the user. Everything works fine if I utilize a webservice to fetch
the
results. However, I want to put the web service code into a page
method.
I
have run the debugger only to find that the [WebMethod] is never
entered.
Here are some of the things I have already tried with no success.
It
appears
that this is a common problem.

-Added the [WebMethod] attribute to the top of the code-behind
method.
-Added/removed "Static" as part of the public method definition.
-Removed the "ServicePath" attribute from the AutoCompleteExtender
.aspx
page.

My textbox and extender control are embedded into a user
control(.ascx)
that
is placed within a ContentPanel inherited from a MasterPage. I'm
not
sure
if
this could be part of the problem. As I view the browser source
code,
the
javascript renders the "ServicePath" to be looking by default at my
aspx
page, but my [WebMethod] lives in pagename.ascx.cs. Also, I have
tried
including "ServicePath=pagename.ascx.cs" and still no luck.

At this point, I don't know what else to try. The main reason I'm
wanting
to move to a page method is because I need access to controls which
aren't
available to the web service. Also, I don't think my needs here
constitute
the need for a web service.

Any help would be greatly appreciated!

Thanks,

Trent


Feb 9 '07 #9
Hello,

works like charm here.

Here is the complete source:

Default.aspx.cs:

[WebMethod]
[ScriptMethod]
public static string[] GetTextBoxEntries(string prefixText, int
count)
{
string[] result;
result = new string[4];
result[0] = prefixText + "AAAAAAAA";
result[1] = prefixText + "DDDDDDDD";
result[2] = prefixText + "MMMMMMMM";
result[3] = prefixText + "VVVVVVVV";
return result;
}

======================

UserControl.ascx:

<asp:ScriptManager ID="ScriptManager1" runat="server"
EnablePartialRendering="true" EnablePageMethods="true" />
<asp:TextBox runat="server" ID="tbTextBox" />
<ajaxToolkit:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server"
ServiceMethod="GetTextBoxEntries" TargetControlID="tbTextBox"
CompletionSetCount="10" MinimumPrefixLength="1" EnableCaching="true" />
Changes in the web.config:

<system.web>
<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI"
assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"/>
<add tagPrefix="ajaxToolkit" assembly="AjaxControlToolkit"
namespace="AjaxControlToolkit" />
</controls>
</pages>
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false"
type="System.Web.Script.Services.ScriptHandlerFact ory,
System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"/>
<add verb="*" path="*_AppService.axd" validate="false"
type="System.Web.Script.Services.ScriptHandlerFact ory,
System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"/>
<add verb="GET,HEAD" path="ScriptResource.axd"
type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions,
Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
validate="false"/>
</httpHandlers>

<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule,
System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"/>
</httpModules>
</system.web>

Best regards,
Henning Krause
"Trent" <Tr***@discussions.microsoft.comwrote in message
news:7A**********************************@microsof t.com...
Here is my code.

**********pagename.ascx
<asp:ScriptManager ID="ScriptManager1" runat="server"
EnablePageMethods="true">

</asp:ScriptManager>
<cc1:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server"
TargetControlID="txtDestination"
CompletionSetCount="10"
MinimumPrefixLength="1"
EnableCaching="true"
ServiceMethod="GetDest"/>

**********pagename.aspx.cs
[WebMethod]
[ScriptMethod]
public static string[] GetDest(string prefixText, int count)
{

string[] result;
result = new string[4];
result[0] = prefixText + "AAAAAAAA";
result[1] = prefixText + "DDDDDDDD";
result[2] = prefixText + "MMMMMMMM";
result[3] = prefixText + "VVVVVVVV";
return result;
}

"Henning Krause [MVP - Exchange]" wrote:
>Hello,

do you have enabled the property EnablePageMethods on the ScriptManager
in
your aspx file?

Best regards,
Henning Krause

"Trent" <Tr***@discussions.microsoft.comwrote in message
news:58**********************************@microso ft.com...
Hi Henning,

I have downloaded the February 6 version of toolkit, removed the
toolkit
from the toolbox, re-added it, and removed the dll/pdb and readded the
reference as well. My codebehind is in pagename.aspx.cs, rather than
being
in pagename.ascx.cs. When I type into my textbox, a popup does appear
and
it
contains "undefined", "undefined", "undefined", "undefined",
"undefined"
which goes on and on seems like forever. If I set a breakpoint in the
"suggestion" codebehind method, it never breaks.

Thanks!

"Henning Krause [MVP - Exchange]" wrote:

Hello,

I've a working autocomplete extender using this schema:

In Codebehind:

[WebMethod]
[ScriptMethod]
public static string MyMethod(string contextKey)
{}

In aspx site:

<ajaxToolkit:AutoCompleteExtender runat="server"
ID="tbAutoCompleteExtender" TargetControlID="tbTextBox"

ServiceMethod="MyMethod"
MinimumPrefixLength="2" CompletionInterval="1000"

EnableCaching="true"
CompletionSetCount="12" />

Note that code-behind method must be in the .aspx file, even if the
autocomplete extender is in a usercontrol.

Do you have the latest version of the Ajax toolkit installed? It's
from
february... so only a few days old.

Best regards,
Henning Krause
"Trent" <Tr***@discussions.microsoft.comwrote in message
news:F2**********************************@microso ft.com...
I applied [ScriptMethod] immediately after [WebService] and that
didn't
fix
it. Any other thoughts? Thanks!

"Henning Krause [MVP - Exchange]" wrote:

Hello,

you'll have to specify the [ScriptMethod] attribute in addition to
the
[WebService] attribute.

Best regards,
Henning Krause

"Trent" <Tr***@discussions.microsoft.comwrote in message
news:70**********************************@microso ft.com...
I have tied an AutoCompleteExtender to a textbox to indicate
suggestions
to
the user. Everything works fine if I utilize a webservice to
fetch
the
results. However, I want to put the web service code into a page
method.
I
have run the debugger only to find that the [WebMethod] is never
entered.
Here are some of the things I have already tried with no success.
It
appears
that this is a common problem.

-Added the [WebMethod] attribute to the top of the code-behind
method.
-Added/removed "Static" as part of the public method definition.
-Removed the "ServicePath" attribute from the
AutoCompleteExtender
.aspx
page.

My textbox and extender control are embedded into a user
control(.ascx)
that
is placed within a ContentPanel inherited from a MasterPage. I'm
not
sure
if
this could be part of the problem. As I view the browser source
code,
the
javascript renders the "ServicePath" to be looking by default at
my
aspx
page, but my [WebMethod] lives in pagename.ascx.cs. Also, I have
tried
including "ServicePath=pagename.ascx.cs" and still no luck.

At this point, I don't know what else to try. The main reason
I'm
wanting
to move to a page method is because I need access to controls
which
aren't
available to the web service. Also, I don't think my needs here
constitute
the need for a web service.

Any help would be greatly appreciated!

Thanks,

Trent


Feb 11 '07 #10
Hello Henning,

Thank you so much for your dedicated help on this issue. I had added the
new web.config segment of <httpHandlersbut hadn't added <httpModules>.
Once I added that, it started working like a champ for me as well :)

Thanks again,

Trent

"Henning Krause [MVP - Exchange]" wrote:
Hello,

works like charm here.

Here is the complete source:

Default.aspx.cs:

[WebMethod]
[ScriptMethod]
public static string[] GetTextBoxEntries(string prefixText, int
count)
{
string[] result;
result = new string[4];
result[0] = prefixText + "AAAAAAAA";
result[1] = prefixText + "DDDDDDDD";
result[2] = prefixText + "MMMMMMMM";
result[3] = prefixText + "VVVVVVVV";
return result;
}

======================

UserControl.ascx:

<asp:ScriptManager ID="ScriptManager1" runat="server"
EnablePartialRendering="true" EnablePageMethods="true" />
<asp:TextBox runat="server" ID="tbTextBox" />
<ajaxToolkit:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server"
ServiceMethod="GetTextBoxEntries" TargetControlID="tbTextBox"
CompletionSetCount="10" MinimumPrefixLength="1" EnableCaching="true" />
Changes in the web.config:

<system.web>
<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI"
assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"/>
<add tagPrefix="ajaxToolkit" assembly="AjaxControlToolkit"
namespace="AjaxControlToolkit" />
</controls>
</pages>
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false"
type="System.Web.Script.Services.ScriptHandlerFact ory,
System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"/>
<add verb="*" path="*_AppService.axd" validate="false"
type="System.Web.Script.Services.ScriptHandlerFact ory,
System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"/>
<add verb="GET,HEAD" path="ScriptResource.axd"
type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions,
Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
validate="false"/>
</httpHandlers>

<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule,
System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"/>
</httpModules>
</system.web>

Best regards,
Henning Krause
"Trent" <Tr***@discussions.microsoft.comwrote in message
news:7A**********************************@microsof t.com...
Here is my code.

**********pagename.ascx
<asp:ScriptManager ID="ScriptManager1" runat="server"
EnablePageMethods="true">

</asp:ScriptManager>
<cc1:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server"
TargetControlID="txtDestination"
CompletionSetCount="10"
MinimumPrefixLength="1"
EnableCaching="true"
ServiceMethod="GetDest"/>

**********pagename.aspx.cs
[WebMethod]
[ScriptMethod]
public static string[] GetDest(string prefixText, int count)
{

string[] result;
result = new string[4];
result[0] = prefixText + "AAAAAAAA";
result[1] = prefixText + "DDDDDDDD";
result[2] = prefixText + "MMMMMMMM";
result[3] = prefixText + "VVVVVVVV";
return result;
}

"Henning Krause [MVP - Exchange]" wrote:
Hello,

do you have enabled the property EnablePageMethods on the ScriptManager
in
your aspx file?

Best regards,
Henning Krause

"Trent" <Tr***@discussions.microsoft.comwrote in message
news:58**********************************@microsof t.com...
Hi Henning,

I have downloaded the February 6 version of toolkit, removed the
toolkit
from the toolbox, re-added it, and removed the dll/pdb and readded the
reference as well. My codebehind is in pagename.aspx.cs, rather than
being
in pagename.ascx.cs. When I type into my textbox, a popup does appear
and
it
contains "undefined", "undefined", "undefined", "undefined",
"undefined"
which goes on and on seems like forever. If I set a breakpoint in the
"suggestion" codebehind method, it never breaks.

Thanks!

"Henning Krause [MVP - Exchange]" wrote:

Hello,

I've a working autocomplete extender using this schema:

In Codebehind:

[WebMethod]
[ScriptMethod]
public static string MyMethod(string contextKey)
{}

In aspx site:

<ajaxToolkit:AutoCompleteExtender runat="server"
ID="tbAutoCompleteExtender" TargetControlID="tbTextBox"

ServiceMethod="MyMethod"
MinimumPrefixLength="2" CompletionInterval="1000"

EnableCaching="true"
CompletionSetCount="12" />

Note that code-behind method must be in the .aspx file, even if the
autocomplete extender is in a usercontrol.

Do you have the latest version of the Ajax toolkit installed? It's
from
february... so only a few days old.

Best regards,
Henning Krause
"Trent" <Tr***@discussions.microsoft.comwrote in message
news:F2**********************************@microsof t.com...
I applied [ScriptMethod] immediately after [WebService] and that
didn't
fix
it. Any other thoughts? Thanks!

"Henning Krause [MVP - Exchange]" wrote:

Hello,

you'll have to specify the [ScriptMethod] attribute in addition to
the
[WebService] attribute.

Best regards,
Henning Krause

"Trent" <Tr***@discussions.microsoft.comwrote in message
news:70**********************************@microsof t.com...
I have tied an AutoCompleteExtender to a textbox to indicate
suggestions
to
the user. Everything works fine if I utilize a webservice to
fetch
the
results. However, I want to put the web service code into a page
method.
I
have run the debugger only to find that the [WebMethod] is never
entered.
Here are some of the things I have already tried with no success.
It
appears
that this is a common problem.

-Added the [WebMethod] attribute to the top of the code-behind
method.
-Added/removed "Static" as part of the public method definition.
-Removed the "ServicePath" attribute from the
AutoCompleteExtender
.aspx
page.

My textbox and extender control are embedded into a user
control(.ascx)
that
is placed within a ContentPanel inherited from a MasterPage. I'm
not
sure
if
this could be part of the problem. As I view the browser source
code,
the
javascript renders the "ServicePath" to be looking by default at
my
aspx
page, but my [WebMethod] lives in pagename.ascx.cs. Also, I have
tried
including "ServicePath=pagename.ascx.cs" and still no luck.

At this point, I don't know what else to try. The main reason
I'm
wanting
to move to a page method is because I need access to controls
which
aren't
available to the web service. Also, I don't think my needs here
constitute
the need for a web service.

Any help would be greatly appreciated!

Thanks,

Trent


Feb 12 '07 #11
Hello Henning,

I have one more issue. To the best of my knowledge, there isn't a way to
pass additional parameters to the method/web service for the
autocompleteextender...do you think that is correct? I now need to access a
value from one of the textboxes on "pagename.ascx". Since the page method is
on the aspx side, I'm not sure how to access this value. I don't want to use
Session state. Any thoughts?

Trent

"Henning Krause [MVP - Exchange]" wrote:
Hello,

works like charm here.

Here is the complete source:

Default.aspx.cs:

[WebMethod]
[ScriptMethod]
public static string[] GetTextBoxEntries(string prefixText, int
count)
{
string[] result;
result = new string[4];
result[0] = prefixText + "AAAAAAAA";
result[1] = prefixText + "DDDDDDDD";
result[2] = prefixText + "MMMMMMMM";
result[3] = prefixText + "VVVVVVVV";
return result;
}

======================

UserControl.ascx:

<asp:ScriptManager ID="ScriptManager1" runat="server"
EnablePartialRendering="true" EnablePageMethods="true" />
<asp:TextBox runat="server" ID="tbTextBox" />
<ajaxToolkit:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server"
ServiceMethod="GetTextBoxEntries" TargetControlID="tbTextBox"
CompletionSetCount="10" MinimumPrefixLength="1" EnableCaching="true" />
Changes in the web.config:

<system.web>
<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI"
assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"/>
<add tagPrefix="ajaxToolkit" assembly="AjaxControlToolkit"
namespace="AjaxControlToolkit" />
</controls>
</pages>
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false"
type="System.Web.Script.Services.ScriptHandlerFact ory,
System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"/>
<add verb="*" path="*_AppService.axd" validate="false"
type="System.Web.Script.Services.ScriptHandlerFact ory,
System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"/>
<add verb="GET,HEAD" path="ScriptResource.axd"
type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions,
Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
validate="false"/>
</httpHandlers>

<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule,
System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"/>
</httpModules>
</system.web>

Best regards,
Henning Krause
"Trent" <Tr***@discussions.microsoft.comwrote in message
news:7A**********************************@microsof t.com...
Here is my code.

**********pagename.ascx
<asp:ScriptManager ID="ScriptManager1" runat="server"
EnablePageMethods="true">

</asp:ScriptManager>
<cc1:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server"
TargetControlID="txtDestination"
CompletionSetCount="10"
MinimumPrefixLength="1"
EnableCaching="true"
ServiceMethod="GetDest"/>

**********pagename.aspx.cs
[WebMethod]
[ScriptMethod]
public static string[] GetDest(string prefixText, int count)
{

string[] result;
result = new string[4];
result[0] = prefixText + "AAAAAAAA";
result[1] = prefixText + "DDDDDDDD";
result[2] = prefixText + "MMMMMMMM";
result[3] = prefixText + "VVVVVVVV";
return result;
}

"Henning Krause [MVP - Exchange]" wrote:
Hello,

do you have enabled the property EnablePageMethods on the ScriptManager
in
your aspx file?

Best regards,
Henning Krause

"Trent" <Tr***@discussions.microsoft.comwrote in message
news:58**********************************@microsof t.com...
Hi Henning,

I have downloaded the February 6 version of toolkit, removed the
toolkit
from the toolbox, re-added it, and removed the dll/pdb and readded the
reference as well. My codebehind is in pagename.aspx.cs, rather than
being
in pagename.ascx.cs. When I type into my textbox, a popup does appear
and
it
contains "undefined", "undefined", "undefined", "undefined",
"undefined"
which goes on and on seems like forever. If I set a breakpoint in the
"suggestion" codebehind method, it never breaks.

Thanks!

"Henning Krause [MVP - Exchange]" wrote:

Hello,

I've a working autocomplete extender using this schema:

In Codebehind:

[WebMethod]
[ScriptMethod]
public static string MyMethod(string contextKey)
{}

In aspx site:

<ajaxToolkit:AutoCompleteExtender runat="server"
ID="tbAutoCompleteExtender" TargetControlID="tbTextBox"

ServiceMethod="MyMethod"
MinimumPrefixLength="2" CompletionInterval="1000"

EnableCaching="true"
CompletionSetCount="12" />

Note that code-behind method must be in the .aspx file, even if the
autocomplete extender is in a usercontrol.

Do you have the latest version of the Ajax toolkit installed? It's
from
february... so only a few days old.

Best regards,
Henning Krause
"Trent" <Tr***@discussions.microsoft.comwrote in message
news:F2**********************************@microsof t.com...
I applied [ScriptMethod] immediately after [WebService] and that
didn't
fix
it. Any other thoughts? Thanks!

"Henning Krause [MVP - Exchange]" wrote:

Hello,

you'll have to specify the [ScriptMethod] attribute in addition to
the
[WebService] attribute.

Best regards,
Henning Krause

"Trent" <Tr***@discussions.microsoft.comwrote in message
news:70**********************************@microsof t.com...
I have tied an AutoCompleteExtender to a textbox to indicate
suggestions
to
the user. Everything works fine if I utilize a webservice to
fetch
the
results. However, I want to put the web service code into a page
method.
I
have run the debugger only to find that the [WebMethod] is never
entered.
Here are some of the things I have already tried with no success.
It
appears
that this is a common problem.

-Added the [WebMethod] attribute to the top of the code-behind
method.
-Added/removed "Static" as part of the public method definition.
-Removed the "ServicePath" attribute from the
AutoCompleteExtender
.aspx
page.

My textbox and extender control are embedded into a user
control(.ascx)
that
is placed within a ContentPanel inherited from a MasterPage. I'm
not
sure
if
this could be part of the problem. As I view the browser source
code,
the
javascript renders the "ServicePath" to be looking by default at
my
aspx
page, but my [WebMethod] lives in pagename.ascx.cs. Also, I have
tried
including "ServicePath=pagename.ascx.cs" and still no luck.

At this point, I don't know what else to try. The main reason
I'm
wanting
to move to a page method is because I need access to controls
which
aren't
available to the web service. Also, I don't think my needs here
constitute
the need for a web service.

Any help would be greatly appreciated!

Thanks,

Trent


Feb 12 '07 #12

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

reply views Thread by ack95 | last post: by
4 posts views Thread by Grant Merwitz | last post: by
reply views Thread by =?Utf-8?B?UmFjaGVs?= | last post: by
4 posts views Thread by MarkusJ_NZ | last post: by
7 posts views Thread by SV | last post: by
4 posts views Thread by Peter | last post: by
1 post views Thread by Tomas | last post: by
4 posts views Thread by Peter | last post: by
1 post views Thread by CARIGAR | last post: by
reply views Thread by suresh191 | last post: by
1 post views Thread by Marylou17 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.