2013-06-28 2 views
0

아래 코드를 사용하여 자동 완성 텍스트 상자를 채우고 선택한 경우 내가 선택한 행 ID가 아니라 텍스트를 제공합니다. alert (eventArgs.get_value())가 SQL에서 행의 실제 ID를 반환하지 않는 이유는 무엇입니까?alert (eventArgs.get_value())

<script language="javascript" type="text/javascript"> 
    function getSelected(source, eventArgs) { 
     alert(eventArgs.get_value()) 

    } 
</script> 
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    AutoCompleteExtender.OnClientItemSelected = "getSelected" 

End Sub 

Public Function GetCompletionList(prefixText As String, count As Integer, ByVal contextKey As String) As String() 
    Try 
     Dim Con As SqlConnection 
     Dim cmd As SqlCommand 
     Con = New SqlConnection 
     Dim test As String 
     test = contextKey 
     Con.ConnectionString = "" 
     Con.Open() 

     cmd = New SqlCommand 
     cmd.Connection = Con 
     'cmd.CommandText = "SELECT NPI, [Entity Type Code], [Provider Last Name (Legal Name)], [Provider First Name], [Provider Business Mailing Address City Name] FROM NPIData WHERE [Provider Last Name (Legal Name)] LIKE @Provider + '%' AND [Provider Business Mailing Address City Name] = @State" 
     cmd.CommandText = "SELECT NPI, [Entity Type Code], [Provider Last Name (Legal Name)], [Provider First Name], [Provider Business Mailing Address City Name], [Provider Business Mailing Address State Name], [Provider Business Mailing Address Postal Code] FROM NPIData WHERE  ([Provider Business Mailing Address State Name] = @State) AND ([Provider Last Name (Legal Name)] LIKE N'%' + @Provider + N'%') ORDER BY [Provider First Name]" 
     cmd.Parameters.AddWithValue("@Provider", prefixText) 
     cmd.Parameters.AddWithValue("@State", contextKey) 
     Dim customers As List(Of String) = New List(Of String) 
     Dim reader As SqlDataReader = cmd.ExecuteReader() 


     While reader.Read 
      customers.Add(reader("Provider Last Name (Legal Name)").ToString + ", " + reader("Provider First Name").ToString + "   " + reader("Provider Business Mailing Address City Name").ToString + ", " + reader("Provider Business Mailing Address State Name").ToString + " " + reader("Provider Business Mailing Address Postal Code").ToString) 

     End While 


     Con.Close() 

     Return customers.ToArray 
    Catch ex As Exception 

    End Try 
+0

당신은 호출하는 코드를 제시해야'통해 getSelected()'그래서 우리는 특히, 실제로 함수에 전달되는 것을 볼 수 있습니다 eventArgs 객체입니다. – Darren

+0

맨 위로 추가 .. AutoCompleteExtender.OnClientItemSelected = "getSelected" – user1342164

답변

0

AutoExtender에 입력하지 않았기 때문에 행 ID가 반환되지 않으므로 기본 값이 아닌 텍스트 값만 입력했습니다. 고객이 다음과 같이 채워 져야합니다 (NPI를 가정하면 행 ID입니다?)

customers.Add(AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem(
reader("NPI").ToString, 
reader("Provider Last Name (Legal Name)").ToString + ", " 
+ reader("Provider First Name").ToString + "   " + reader("Provider Business Mailing Address City Name").ToString + ", " 
+ reader("Provider Business Mailing Address State Name").ToString + " " + reader("Provider Business Mailing Address Postal Code").ToString))