alert(eventArgs.get_value())返回所选文本而不是ID(alert(eventArgs.get_value()) returning selected text and not the ID)
我使用下面的代码填充一个带有自动完成功能的文本框,当选择它时,它不会给我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 TryI am using the code below to populate a textbox with autocomplete and when selected it is not giving me the rowid but just the text I selected. Any reason why alert(eventArgs.get_value()) is not returning the actual ID of the row in SQL?
<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最满意答案
它没有返回行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))Its not returning the row ID because you haven't populated it in the AutoExtender, you've only given it a text value not an underlying value. Customers should be populated like this (assuming NPI is your row 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))更多推荐
发布评论