私は AutoCompleteExtender の関数を書いていないので、それを台無しにせずに変更する方法がよくわからないので、ここで質問することにしました。最近、オートコンプリートに製品名とその特定の製品の発売日を表示するように要求されました。オートコンプリートに日付を追加する方法がわかりません。
これが必要な理由は、私たちが提供するウェビナーが将来再び表示されるためです。そのため、データベースには同じ名前のウェビナーが複数存在します。全く同じ名前のウェビナーが3つあると検索するとちょっと選びにくいので、名前と日付が表示されると選びやすいと思います!
これが今書かれている方法は正しくありません。行内の単語の下にlaunchdate
波線が表示されDim item As String = AjaxControlToolkit......
、エラーは次のとおりです。Too many arguments to 'Public Shared Function CreateAutoCompleteItem(text As String, value As String) As String'
どんな助けでも大歓迎です!私が言ったように、私はこれを書いていないので、これがベストプラクティスであるかどうかさえわかりません. コードを批判したい場合は理解しています。必要に応じて変更しますが、余分なフィールドを追加する方法も知りたいです。ありがとう!
Public Function GetProducts(ByVal prefixText As String, ByVal count As Integer) As String()
Dim ProductSql As String = "Select DISTINCT ProductID, ProductName, LaunchDate
FROM Product
WHERE ProductName LIKE '%' + @prefixText + '%'
AND LaunchDate IS NOT NULL
ORDER BY ProductName ASC"
Using sqlConn As New SqlConnection
(System.Configuration.ConfigurationManager.ConnectionStrings("LocalSqlServer").ConnectionString)
sqlConn.Open()
Dim myCommand As New SqlCommand(ProductSql, sqlConn)
myCommand.Parameters.Add("@prefixText", SqlDbType.VarChar, 50).Value = prefixText
Dim myReader As SqlDataReader = myCommand.ExecuteReader()
Dim myTable As New DataTable
myTable.TableName = "ProductSearch"
myTable.Load(myReader)
sqlConn.Close()
Dim items As String() = New String(myTable.Rows.Count - 1) {}
Dim i As Integer = 0
For Each dr As DataRow In myTable.Rows
Dim id As String = dr("ProductID").ToString()
Dim name As String = dr("ProductName").ToString()
Dim launchdate As String = dr("LaunchDate").ToString()
Dim item As String =
AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem(name, id, launchdate)
items.SetValue(item, i)
i += 1
Next
Return items
End Using
End Function