間違いなく私の知恵はここで終わります。これは単純なはずです。新しいユーザーアカウントを作成するページには、許可されるユーザーが少しいるデータベースがあります。新しいユーザーの電子メールアドレスを正しく取得するために、オートコンプリート拡張テキストボックスを使用します。
これで、別のページのWebメソッドにカスケードドロップダウンが関連付けられているため、WebMethodsが機能していることがわかりました。
このページから始めたばかりなので、コードは単純です。
ページ自体:
<cc1:ToolkitScriptManager ID="ScriptManager2" runat="server"/>
<p></p> Please enter new user's Email:
<asp:TextBox ID="txtUser" runat="server" />
<cc1:AutoCompleteExtender runat="server" ID="autUser" TargetControlID="txtUser"
ServiceMethod="ScanGALUsers" ServicePath="~/AutoScan.asmx"
MinimumPrefixLength="3" CompletionSetCount="150" /> <p></p>
.asmxファイルは単純です。
<%@ WebService Language="VB" CodeBehind="~/App_Code/VB_Code/AutoScan.vb" Class="AutoScan" %>
WebMethod:
<System.Web.Script.Services.ScriptService()> _
<WebService(Namespace:="http://tempuri.org/")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Public Class AutoScan
Inherits System.Web.Services.WebService
<WebMethod()> _
Public Shared Function ScanGALUsers(ByVal strPrefix As String, ByVal intMaxCount As Integer) As String()
Dim arlResults As New ArrayList
Dim intCount As Integer
Dim dt As DataTable
Dim colParameters As New SortedList
SysDA.LogDebug("ScanGALUsers called with parameters: " & strPrefix & " and count of " & intMaxCount.ToString)
... Deleted for brevity ...
If intCount > 0 Then
Dim arrResults(intCount - 1) As String
arrResults = arlResults.ToArray(GetType(System.String))
Return arrResults
Else
Return Nothing
End If
End Function
End Class
LogDebugステートメントに到達していません。他のWebMethodで機能したものと同じボイラープレートコード(Inherits、'WebService'タグなど)をすべて使用し、クラス名を適切に変更しましたが、これは本当に困惑しています。
メソッドに到達していないことで何が欠けていますか?