-
Notifications
You must be signed in to change notification settings - Fork 0
/
catalogue.aspx.vb
136 lines (103 loc) · 6.25 KB
/
catalogue.aspx.vb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
Imports System.Data
Imports Telerik.Web.UI
Imports System.Data.SqlClient
Partial Class catalogue
Inherits System.Web.UI.Page
Protected Sub rcbResources_ItemsRequested1(ByVal o As Object, ByVal e As Telerik.Web.UI.RadComboBoxItemsRequestedEventArgs) Handles rcbResources.ItemsRequested
Dim sqlSelectCommand As String = "SELECT TOP 1000 id, unitId, resourceName, manufacturer, partId FROM tblResources WHERE resourceName LIKE '%@resourceName%' AND resourceTypeId = @resourceTypeId ORDER BY resourceName"
Dim adapter As New SqlDataAdapter(sqlSelectCommand, System.Configuration.ConfigurationManager.ConnectionStrings("LocalSqlServer").ConnectionString)
adapter.SelectCommand.Parameters.AddWithValue("@resourceName", e.Text)
adapter.SelectCommand.Parameters.AddWithValue("@resourceTypeId", rcbresourceType.SelectedValue)
Dim dataTable As New DataTable()
adapter.Fill(dataTable)
For Each dataRow As DataRow In dataTable.Rows
Dim item As New RadComboBoxItem()
item.Text = Server.HtmlDecode(dataRow("resourceName"))
item.Value = dataRow("id")
Dim manufacturer As String = DirectCast(dataRow("manufacturer"), String)
Dim partId As String = DirectCast(dataRow("partId"), String)
item.Attributes.Add("manufacturer", manufacturer)
item.Attributes.Add("partId", partId)
rcbResources.Items.Add(item)
item.DataBind()
Next
End Sub
'Private Const ItemsPerRequest As Integer = 100
'Private Shared Function GetStatusMessage(ByVal offset As Integer, ByVal total As Integer) As String
' If total <= 0 Then
' Return "No matches"
' End If
' Return [String].Format("Items <b>1</b>-<b>{0}</b> out of <b>{1}</b>", offset, total)
'End Function
'Private Shared Function GetData(ByVal text As String, ByVal resourceType As String) As DataTable
' 'Dim adapter As New SqlDataAdapter("SELECT id, unitId, resourceName FROM tblResources WHERE resourceName LIKE '%' + @text + '%' AND resourceTypeId = @resourceType", ConfigurationManager.ConnectionStrings("LocalSqlServer").ConnectionString)
' Dim adapter As New SqlDataAdapter("SELECT id, unitId, resourceName FROM tblResources WHERE resourceName LIKE '%' + @text + '%' AND resourceTypeId = @resourceType", ConfigurationManager.ConnectionStrings("LocalSqlServer").ConnectionString)
' adapter.SelectCommand.Parameters.AddWithValue("@resourceType", resourceType)
' adapter.SelectCommand.Parameters.AddWithValue("@text", text)
' Dim data As New DataTable()
' adapter.Fill(data)
' Return data
'End Function
'Protected Sub rcbResources_ItemsRequested(ByVal o As Object, ByVal e As Telerik.Web.UI.RadComboBoxItemsRequestedEventArgs) Handles rcbResources.ItemsRequested
' If e.Text.Length >= 3 Then
' Dim data As DataTable = GetData(e.Text, rcbResourceType.SelectedValue)
' Dim itemOffset As Integer = e.NumberOfItems
' Dim endOffset As Integer = Math.Min(itemOffset + ItemsPerRequest, data.Rows.Count)
' e.EndOfItems = endOffset = data.Rows.Count
' For i As Integer = itemOffset To endOffset - 1
' rcbResources.Items.Add(New RadComboBoxItem(Server.HtmlDecode(data.Rows(i)("resourceName").ToString()), data.Rows(i)("id").ToString()))
' Next
' e.Message = GetStatusMessage(endOffset, data.Rows.Count)
' End If
'End Sub
'Protected Sub ApplyFilters()
' ' ensure either keywords or a category is selected
' ' nodevalue >= 4 so don't search for top level category
' If rtbFilter.Text.Length >= 1 Or NodeValue.Value >= 4 Then
' Dim filterExpr As String = ""
' ' check for keyword filter
' If rtbFilter.Text.Length >= 1 Then
' filterExpr += " AND (resourceName LIKE '%%%" & rtbFilter.Text & "%%%' OR keywords LIKE '%%%" & rtbFilter.Text & "%%%')"
' End If
' ' filter by category
' If NodeValue.Value >= 4 Then
' filterExpr += " AND categoryId = " & Convert.ToInt32(NodeValue.Value)
' End If
' ' apply filter expression and databind
' Dim sqlSelect As String = "SELECT tblResources.id, resourceName, unit, keywords, categoryId, categoryName" & _
' " FROM tblResources " & _
' " LEFT JOIN tblUnits ON tblUnits.id = tblResources.unitId " & _
' " LEFT JOIN tblCategories ON tblCategories.id = tblResources.categoryId " & _
' " WHERE 1=1 " & filterExpr & _
' " ORDER BY resourceName"
' allResourceDataSource.SelectCommand = sqlSelect
' allResourceDataSource.DataBind()
' rgResources.DataBind()
' End If
'End Sub
Protected Sub btnApplyFilter_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnApplyFilter.Click
'ApplyFilters()
allCatalogueDataSource.DataBind()
rgCatalogue.DataBind()
' enable add resource button
If rcbSupplier.SelectedValue > 0 And rcbResources.SelectedValue > 0 Then
pAddCatalogue.Visible = True
hlAddCatalogue.NavigateUrl = String.Format(hlAddCatalogue.NavigateUrl, rcbSupplier.SelectedValue, rcbResources.SelectedValue)
Else
pAddCatalogue.Visible = False
End If
End Sub
Protected Sub rcbResourceType_SelectedIndexChanged(ByVal o As Object, ByVal e As Telerik.Web.UI.RadComboBoxSelectedIndexChangedEventArgs) Handles rcbResourceType.SelectedIndexChanged
rcbResources.Text = ""
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Request.QueryString("rid") > 0 Then
rcbResources.SelectedValue = Request.QueryString("rid")
rcbSupplier.SelectedValue = Request.QueryString("sid")
pAddCatalogue.Visible = True
End If
End Sub
Protected Sub rcbSupplier_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles rcbSupplier.DataBound
rcbSupplier.Items.Insert(0, New RadComboBoxItem("Select a Supplier", -1))
End Sub
End Class