我正在使用下面的代码填充一个带有自动填充的文本框,当选择它时,它不会给我rowid而只是我选择的文本。 alert(eventArgs.get_value())没有返回SQL中行的实际ID的原因是什么?
<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 :(得分:0)
它没有返回行ID,因为你没有在AutoExtender中填充它,你只给它一个文本值而不是一个底层值。客户应该像这样填充(假设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))