Torna al Thread
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel
Imports System
Imports System.Data
Imports System.Web
Imports System.Data.SqlClient
Imports Telerik.Web.UI
' Per consentire la chiamata di questo servizio Web dallo script utilizzando ASP.NET AJAX, rimuovere il commento dalla riga seguente.
<System.Web.Script.Services.ScriptService()> _
<System.Web.Services.WebService(Namespace:="http://tempuri.org/")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
Public Class WebService
Inherits System.Web.Services.WebService
Private Const ItemsCategoryPerRequest As Integer = 10
<WebMethod()> _
Public Shared Function GetCategoryNames(ByVal context As RadComboBoxContext) As RadComboBoxData
Dim data As DataTable = Getcategoria(context.Text)
Dim comboData As New RadComboBoxData()
Dim itemOffset As Integer = context.NumberOfItems
Dim endOffset As Integer = Math.Min(itemOffset + ItemsCategoryPerRequest, data.Rows.Count)
comboData.EndOfItems = endOffset = data.Rows.Count
Dim result As New List(Of RadComboBoxItemData)(endOffset - itemOffset)
For i As Integer = itemOffset To endOffset - 1
Dim itemData As New RadComboBoxItemData()
itemData.Text = data.Rows(i)("descrizione").ToString()
itemData.Value = data.Rows(i)("id").ToString()
result.Add(itemData)
Next
REM ottengo il messaggio dei record selezionati
comboData.Message = GetStatusMessage(endOffset, data.Rows.Count)
comboData.Items = result.ToArray()
Return comboData
End Function
Private Shared Function GetStatusMessage(ByVal offset As Integer, ByVal total As Integer) As String
If total <= 0 Then
Return "Nessun dato"
End If
Return [String].Format("Record <b>1</b>-<b>{0}</b> di <b>{1}</b>", offset, total)
End Function
Private Shared Function Getcategoria(ByVal text As String) As DataTable
REM SELECT * FROM Tab_categorie WHERE CONTAINS(descrizione, @text)
REM per indici full text
Dim adapter As New SqlDataAdapter("SELECT * from Tab_categorie WHERE descrizione LIKE @text + '%'", ConfigurationManager.ConnectionStrings("TrycontactString").ConnectionString)
adapter.SelectCommand.Parameters.AddWithValue("@text", text)
Dim data As New DataTable()
adapter.Fill(data)
Return data
End Function
End Class