Imports APNSoft.WebControls
Imports System.Data.OleDb

Public Class WebForm1
    Inherits System.Web.UI.Page


    'DataGrid declaration
    Protected dg1 As APNSoftDataGrid


    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        'Set the DataGrid properties 
        dg1.ID = "dg1"
        dg1.BasePage = MyBase.Page
        dg1.SkinFolder = "~/Skins/APNSoft/"
        dg1.KeyFieldName = "ISBN"

        'Apply server-side events
        AddHandler dg1.CallTheServer, _
            New DataGridEventHandler(AddressOf Me.dg1_CallTheServer)

        'Apply a client-side function to be called after the Server Response. 
        dg1.ClientSideAfterCallBack = "CallTheServerResponse"

        'Define SQL query 
        Dim SQL As String = "SELECT '0' as LineNumbers, ISBN, Title, Synopsis FROM Books"

        'Create the DataTable object 
        Dim myDataTable As DataTable = GetDataSource(SQL)

        'Set the data source 
        dg1.DataSource = myDataTable
        dg1.DataBind()

        'Format Columns 
        dg1.Columns("LineNumbers").LineNumbers = True
        dg1.Columns("LineNumbers").FormatType = GetType(String)
        dg1.Columns("LineNumbers").FormatString = "{0}."
        dg1.Columns("LineNumbers").CssClass = "LineNumbers"
        dg1.Columns("LineNumbers").Width = New System.Web.UI.WebControls.Unit(30)
        dg1.Columns("LineNumbers").Sortable = False
        dg1.Columns("LineNumbers").Resizable = False
        dg1.Columns("LineNumbers").HeaderText = ""

        dg1.Columns("ISBN").Visible = False
        dg1.Columns("Title").Width = New System.Web.UI.WebControls.Unit(220)
        dg1.Columns("Title").HeaderText = "Book title:"
        dg1.Columns("Synopsis").Visible = False

        'Set the client-side function to display the row ID 
        dg1.ClientSideOnSelectRow = "ClientSideOnSelectRow"

    End Sub


    'Server-side procedure for Book Details
    Private Sub dg1_CallTheServer(ByVal sender As Object, ByVal e As DataGridEventArgs)

        'Get the Row 
        Dim myGridRow As GridRow = e.GridRow

        'Get book details 
        Dim BookDetails As String = ""
        BookDetails += "<img src='" & "./Images/Books/" & myGridRow.Cells("ISBN").Value.ToString() & ".gif" & "' />"
        BookDetails += myGridRow.Cells("Synopsis").Value.ToString()

        'Set book details as parameter 
        e.Parameter = BookDetails

    End Sub


    'Returns a DataTable from MS Access database
    Private Function GetDataSource(ByVal query As String) As DataTable

        Dim conn As OleDbConnection = New OleDbConnection
        Dim myOleDbDataAdapter As OleDbDataAdapter = New OleDbDataAdapter
        Dim myDataTable As DataTable = New DataTable

        conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _
            System.Web.HttpContext.Current.Server.MapPath("~/DataBase/Books.mdb")

        myOleDbDataAdapter.SelectCommand = New OleDbCommand(query, conn)
        conn.Open()

        Try
            myOleDbDataAdapter.Fill(myDataTable)
        Finally
            conn.Close()
        End Try

        Return myDataTable

    End Function


#Region " Web Form Designer Generated Code "

    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
    End Sub

    Private designerPlaceholderDeclaration As System.Object

    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
        InitializeComponent()
    End Sub

#End Region


End Class