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 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
|
Imports System.Xml
Imports System.Collections.ObjectModel
Partial Class _Default
Inherits System.Web.UI.Page
Private strOutput As String = ""
Private PathOfXML As String = "\\10.15.78.216\transition\pubs.xml"
Private Tab() As String = {"datedebut", "datefin", "titre", "prixbase", "prixpromo", "categorie", "calibre", "origine", "photo"}
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
'Chargement des photos dans une DropDownList
Dim files As String() = System.IO.Directory.GetFiles(Server.MapPath("~/photo/"), "*.jpg")
For Each f As String In files
ddl.Items.Add(System.IO.Path.GetFileName(f))
Next
ChargementXML()
End If
End Sub
Protected Sub ChargementXML()
Dim xmldoc As New XmlDataDocument()
Try
xmldoc.DataSet.ReadXml(PathOfXML)
GridView1.DataSource = xmldoc.DataSet
GridView1.DataMember = xmldoc.DataSet.Tables(0).TableName
GridView1.DataBind()
Session("pubs") = xmldoc.DataSet.Tables(0)
Catch ex As Exception
strOutput = "Impossible d'accéder au fichier XML" & "<br />" & ex.Message.ToString
End Try
output.Text = strOutput
End Sub
Protected Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.SelectedIndexChanged
GridView1.SelectedIndex = -1
End Sub
Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand
Select Case e.CommandName
Case "Select", "Edit"
For Each t As String In Tab
Select Case t
Case "photo"
Dim Photo As String = CType(GridView1.Rows(e.CommandArgument.ToString).FindControl(t & "LabelGV"), Label).Text
CType(Panel1.FindControl(t & "Image"), Image).ImageUrl = "~/Photo/" & Photo
CType(Panel1.FindControl(t & "Image"), Image).AlternateText = "~/Photo/" & Photo
For i As Integer = 0 To ddl.Items.Count - 1
If ddl.Items(i).Text = Photo Then
ddl.SelectedIndex = i
Exit For
End If
Next
Case "prixbase", "prixpromo"
CType(Panel1.FindControl(t & "Label"), Label).Text = CType(GridView1.Rows(e.CommandArgument.ToString).FindControl(t & "LabelGV"), Label).Text & " "
CType(Panel2.FindControl(t & "Tb"), TextBox).Text = CType(GridView1.Rows(e.CommandArgument.ToString).FindControl(t & "LabelGV"), Label).Text
Case Else
CType(Panel1.FindControl(t & "Label"), Label).Text = CType(GridView1.Rows(e.CommandArgument.ToString).FindControl(t & "LabelGV"), Label).Text
CType(Panel2.FindControl(t & "Tb"), TextBox).Text = CType(GridView1.Rows(e.CommandArgument.ToString).FindControl(t & "LabelGV"), Label).Text
End Select
Next
If e.CommandName = "Edit" Then
modeLabel.Text = "Modification"
hfIdRow.Value = e.CommandArgument
End If
CType(UpdatePanel1.FindControl("mpePanel" & e.CommandName), AjaxControlToolkit.ModalPopupExtender).Show()
Case "Delete"
ActionOnXML(e.CommandName, e.CommandArgument.ToString)
Case Else
ActionOnXML(e.CommandName, e.CommandArgument.ToString)
End Select
End Sub
Protected Sub ActionOnXML(ByVal mode As String, Optional ByVal idOfArticle As Integer = -1)
Dim dt As New Data.DataTable
dt = Session("pubs")
Select Case mode
Case "Add", "Ajout"
Dim nr As Data.DataRow = dt.NewRow
dt.Rows.Add(AddModifArticle(nr))
Case "Edit", "Modification"
Dim cr As Data.DataRow = dt.Rows(idOfArticle)
AddModifArticle(cr)
Case "Delete"
dt.Rows(idOfArticle).Delete()
log.Text += Date.Now.ToString & " : Nombre de DataRow = " & dt.Rows.Count & "<br />"
log.Text += "ActionOnXML : " & mode & " (" & idOfArticle & ")<br /><br />"
End Select
GridView1.DataSource = dt
GridView1.DataBind()
End Sub
Private Function AddModifArticle(ByVal dr As Data.DataRow) As Data.DataRow
For Each t As String In Tab
Select Case t
Case "photo"
dr(t) = ddl.SelectedItem.Text
Case Else
dr(t) = CType(Panel2.FindControl(t & "Tb"), TextBox).Text
End Select
Next
Return dr
End Function
Protected Sub GridView1_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GridView1.RowDeleting
e.Cancel = True
End Sub
Protected Sub GridView1_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GridView1.RowEditing
e.Cancel = True
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles bRec.Click
Dim dt As Data.DataTable = Session("pubs")
dt.DataSet.WriteXml(PathOfXML)
End Sub
Protected Sub GridView1_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.PreRender
output.Text = GridView1.Rows.Count & " articles trouvés."
End Sub
Protected Sub bValid_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles bValid.Click
ActionOnXML(modeLabel.Text, hfIdRow.Value)
End Sub
Protected Sub lbAddPub_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lbAddPub.Click
For Each t As String In Tab
Select Case t
Case "photo"
ddl.SelectedIndex = 0
Case Else
CType(Panel2.FindControl(t & "Tb"), TextBox).Text = ""
End Select
Next
modeLabel.Text = "Ajout"
mpePanelEdit.Show
End Sub
End Class |
Partager