Imports System Imports System.Data Imports System.Collections Imports System.ComponentModel Imports System.Web.UI.WebControls Imports BaseClasses Imports BaseClasses.Utils Imports BaseClasses.Data Imports BaseClasses.Data.SqlProvider Imports BaseClasses.Web.UI.WebControls Imports Persons.Business Imports Persons.Data Imports Persons.UI.Controls.LargeListSelector Namespace Persons.UI ' Code-behind class for the LargeListSelector page. ' Place your customizations in Section 1. Do not modify Section 2. Partial Public Class LargeListSelector Inherits BaseApplicationPage #Region "Section 1: Place your customizations here." Public Sub New() Me.IsUpdatesSessionNavigationHistory = False End Sub ' LoadData reads database data and assigns it to UI controls. ' Customize by adding code before or after the call to LoadData_Base() ' or replace the call to LoadData_Base(). Public Sub LoadData() LoadData_Base() End Sub Private Sub Page_PreInit(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreInit Me.Page_PreInit_Base() End Sub #Region "Ajax Functions" _ Public Shared Function GetAutoCompletionList_StartsWith(ByVal prefixText As String, ByVal count As Integer) As String() ' GetEmployeesSearchAreaCompletionList gets the list of suggestions from the database. ' prefixText is the search text typed by the user . ' count specifies the number of suggestions to be returned. ' Customize by adding code before or after the call to GetAutoCompletionList_EmployeesSearchArea() ' or replace the call to GetAutoCompletionList_EmployeesSearchArea(). Return GetAutoCompletionList_Base(prefixText, Nothing, count) End Function _ Public Shared Function GetAutoCompletionList_Contains(ByVal prefixText As String, ByVal count As Integer) As String() ' GetEmployeesSearchAreaCompletionList gets the list of suggestions from the database. ' prefixText is the search text typed by the user . ' count specifies the number of suggestions to be returned. ' Customize by adding code before or after the call to GetAutoCompletionList_EmployeesSearchArea() ' or replace the call to GetAutoCompletionList_EmployeesSearchArea(). Return GetAutoCompletionList_Base(Nothing, prefixText, count) End Function #End Region #End Region #Region "Section 2: Do not modify this section." Protected Sub Page_PreInit_Base() 'This is multi-color theme, so assign proper theme Dim selectedTheme As String = Me.GetSelectedTheme() If Not String.IsNullOrEmpty(selectedTheme) Then Me.Page.Theme = selectedTheme End Sub ' Handles MyBase.Load. If you need to, you can add additional Load handlers in Section 1. ' Read database data and put into the UI controls. Protected Overridable Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' Load data only when displaying the page for the first time If (Not Me.IsPostBack) Then ' Check if user has access to this page. Redirects to either sign-in page ' or 'no access' page if not. Does not do anything if role-based security ' is not turned on, but you can override to add your own security. Me.Authorize(Me.GetAuthorizedRoles()) ' Read the data for all controls on the page. ' To change the behavior, override the DataBind method for the individual ' record or table UI controls. Me.LoadData() End If End Sub Public Shared Function GetAutoCompletionList_Base(ByVal startsWithText As String, ByVal containsText As String, ByVal count As Integer) As String() ' Since this method is a shared/static method it does not maintain information about page or controls within the page. ' Hence we can not invoke any method associated with any controls. ' So, if we need to use any control in the page we need to instantiate it. Dim control As Persons.UI.Controls.LargeListSelector.ItemsTable control = New Persons.UI.Controls.LargeListSelector.ItemsTable Return control.GetAutoCompletionList(startsWithText, containsText, count) End Function ' Load data from database into UI controls. ' Modify LoadData in Section 1 above to customize. Or override DataBind() in ' the individual table and record controls to customize. Public Sub LoadData_Base() Try ' Load data only when displaying the page for the first time If (Not Me.IsPostBack) Then ' Must start a transaction before performing database operations DbUtils.StartTransaction() ' Load data for each record and table UI control. ' Ordering is important because child controls get ' their parent ids from their parent UI controls. End If Catch ex As Exception ' An error has occured so display an error message. Utils.RegisterJScriptAlert(Me, "Page_Load_Error_Message", ex.Message) Finally If Not Me.IsPostBack Then ' End database transaction DbUtils.EndTransaction() End If End Try End Sub Protected Overrides Sub UpdateSessionNavigationHistory() 'Do nothing End Sub #End Region End Class End Namespace