Imports FDFApp
Partial Public Class example_04

    Inherits System.Web.UI.Page
    Private Debug_Me As Boolean = False
    Private _example_dataset_datasource As String = ""
    Protected Sub Load_Examples_GridView(ByVal grid As GridView, Optional ByVal IsDefault As Boolean = False)
        Dim ds As DataSet, selectedIndex As Integer = 0
        ds = Examples_Dataset
        grid.DataMember = ds.Tables(0).TableName
        grid.DataSource = ds.Tables(0).DefaultView
        grid.DataBind()
        grid.Visible = True
        grid.Focus()
    End Sub
    Protected Property Examples_Dataset() As DataSet
        Get
            Dim ds As DataSet
            If Session("Example_Dataset") Is Nothing Then
                ds = New DataSet("Examples")
                ds.ReadXml(_example_dataset_datasource, XmlReadMode.Auto)
            Else
                ds = New DataSet("Examples")
                ds = CType(Session("Example_Dataset"), DataSet)
            End If
            Return ds
        End Get
        Set(ByVal value As DataSet)
            Session("Example_Dataset") = CType(value, DataSet)
        End Set
    End Property
    Public Sub Example(ByVal dr As DataRow)
        ' DECLARE FDFApp & FDFDoc Classes
        Dim cFDFApp As New FDFApp.FDFApp_Class
        Dim cFDFDoc As New FDFApp.FDFDoc_Class
        ' INITIALIZE FDFDOC Class
        cFDFDoc = cFDFApp.FDFCreate
        ' SET FILE
        cFDFDoc.FDFSetFile(Request.Url.AbsoluteUri.Substring(0, Request.Url.AbsoluteUri.LastIndexOf("/") + 1) & "example.pdf")
        ' SET FIELD VALUES
        cFDFDoc.FDFSetValue("FULLNAME", CStr(dr("FULLNAME")))
        cFDFDoc.FDFSetValue("EMAIL", CStr(dr("EMAIL")))
        cFDFDoc.FDFSetValue("COMBOBOX", CStr(dr("COMBOBOX")))
        cFDFDoc.FDFSetValue("CHECKBOX", CStr(dr("CHECKBOX")))
        cFDFDoc.FDFSetValue("LISTBOX", CStr(dr("LISTBOX")))
        cFDFDoc.FDFSetValue("RADIOBUTTON", CStr(dr("RADIOBUTTON")))
        cFDFDoc.FDFSetTargetFrame = "frame_examples"
        cFDFDoc.FDFSetOnImportJavaScript("var x = app.alert('Thank you for trying FDFToolkit.net!',3);", False)
        cFDFDoc.FDFSetOnImportJavaScript("var x = app.alert('Thank you for trying FDFToolkit.net!',3);", False)
        ' CLEAR THE OUTPUT STREAM
        Response.Clear()
        If Debug_Me Then
            Response.ContentType = cFDFApp.MimeTXT
        Else
            Response.ContentType = cFDFApp.MimePDF
        End If
        ' WRITE MERGED PDF FILE TO BUFFER
        Response.BinaryWrite(cFDFDoc.PDFMergeFDF2Buf(Request.Url.AbsoluteUri.Substring(0, Request.Url.AbsoluteUri.LastIndexOf("/") + 1) & "example.pdf", False))
        Response.End()
    End Sub
    Public Sub Example_In()
        Dim cFDFApp As New FDFApp.FDFApp_Class
        Dim cFDFDoc As New FDFApp.FDFDoc_Class
        ' INITIALIZE FDFDOC Class AND OPEN FDFDOC FROM REQUEST STREAM 
        cFDFDoc = cFDFApp.FDFOpenFromStream(Request.InputStream, True)
        Dim ds As DataSet = Examples_Dataset
        If Not cFDFDoc Is Nothing Then
            ' CREATE NEW DATA ROW
            Dim dr As DataRow = ds.Tables(0).NewRow
            ' SET DATA ROW FIELD VALUES FROM FDF DOC Class Field Values
            dr("FULLNAME") = StripCodeFromString(cFDFDoc.FDFGetValue("FULLNAME") & "")
            dr("EMAIL") = StripCodeFromString(cFDFDoc.FDFGetValue("EMAIL") & "")
            dr("COMBOBOX") = StripCodeFromString(cFDFDoc.FDFGetValue("COMBOBOX") & "")
            dr("CHECKBOX") = StripCodeFromString(cFDFDoc.FDFGetValue("CHECKBOX") & "")
            dr("RADIOBUTTON") = StripCodeFromString(cFDFDoc.FDFGetValue("RADIOBUTTON") & "")
            dr("LISTBOX") = StripCodeFromString(cFDFDoc.FDFGetValue("LISTBOX") & "")


            ' ADD ROW TO DATA TABLE
            ds.Tables(0).Rows.Add(dr)
            ' UPDATE DATASET
            Examples_Dataset = ds
            ' POPULATE GRIDVIEW
            Load_Examples_GridView(Me.Examples_Selection, False)
        Else
            ' LOAD DATASET
            Examples_Dataset = ds
            ' POPULATE GRIDVIEW
            Load_Examples_GridView(Me.Examples_Selection, False)
        End If
    End Sub

    Private Sub Examples_Selection_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles Examples_Selection.RowCommand
        If e.CommandName.ToLower = "select" Then
            Examples_Selection.SelectedIndex = CInt(e.CommandArgument)
            Dim ds As DataSet
            ds = Examples_Dataset
            Dim dr As DataRow
            dr = ds.Tables(0).Rows(Examples_Selection.SelectedIndex)
            Example(dr)
        End If
    End Sub
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        _example_dataset_datasource = Server.MapPath(ConfigurationManager.ConnectionStrings("fdftoolkit_example_dataset").ConnectionString & "")
        Example_In()
        Update_Message("To load a PDF, select a record")
    End Sub
    Private Sub Update_Message(ByVal strMsg As String)
        Me.lblMessage_Top.Text = "Status: " & strMsg
    End Sub

    Private Sub Examples_Selection_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Examples_Selection.SelectedIndexChanged

    End Sub
End Class