【问题标题】:alert(eventArgs.get_value()) returning selected text and not the IDalert(eventArgs.get_value()) 返回选定的文本而不是 ID
【发布时间】:2013-06-28 14:07:35
【问题描述】:

我正在使用下面的代码来填充一个与自动完成的文本框,并且选择时,它不会给我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

【问题讨论】:

  • 您需要显示调用getSelected() 的代码,以便我们可以看到实际传递给函数的内容,特别是您的 eventArgs 对象。
  • 我把它加到顶部了.. AutoCompleteExtender.OnClientItemSelected = "getSelected"

标签: javascript asp.net sql ajax


【解决方案1】:

它没有返回行 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))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多