Netlink
Messages postés139Date d'inscriptionmercredi 2 avril 2003StatutMembreDernière intervention12 juillet 2011
-
28 oct. 2005 à 19:41
Netlink
Messages postés139Date d'inscriptionmercredi 2 avril 2003StatutMembreDernière intervention12 juillet 2011
-
13 nov. 2005 à 23:17
Bonjour,
Voilà en fait je butte sur le problème depuis hier et ça commence à m'énerver, alors je fais appel à vous
Je développe un système de gestion d'articles. Pour cela, j'ai créé un DataGrid qui contient tous les article d'une catégorie au choix. Dans ce DataGrid, pour chaque article, j'ai les informations suivantes :
- Titre
- Auteur
- Date de création
- Etat
C'est la colonne Etat qui me pose un problème... Car selon si, dans la base de données (Access), le champ "IsOnLine" = 0 ou 1, l'image doit être (respectivement) soit rouge soit verte.
Mais je n'arrive pas à définir la propriété ImageUrl du contrôle ImageButton (je l'ai appelé "ibArticleOnOff") via le code behind...
Je vous met le code, vous y verrez peut-être un peu plus clair :
&C ='>
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase
.Load
dgChoixArticle.Visible = True
' ImageButton pour afficher l'état de l'article (en ligne ou non)
Dim ibArticleOnOff As ImageButton = Me.Page.FindControl("ibArticleOnOff")
Dim conn As New OleDbConnection(Me
.strConn) 'Dim sSQL As String "SELECT Pages.ID, Pages.Titre, Pages.SousTitre, Pages.AuteurID, Pages.Categorie, Pages.DateCreation, Pages.IsOnLine, Membres.Login, Categorie.Texte FROM Pages, Membres, Categorie WHERE Categorie.ID Pages.Categorie AND Membres.ID = Pages.AuteurID ORDER BY Pages.DateCreation"
Dim ds As New
DataSet
Dim da As New OleDbDataAdapter(Me
.sSQL, conn)
da.Fill(ds, "Pages")
For Each dr As DataRow In ds.Tables("Pages").Rows
If dr("IsOnLine") = 0 Then
CType(ibArticleOnOff, ImageButton).ImageUrl = "../Media/Images/Icones/OnLine.gif"
Me.dgChoixArticle.DataSource = ds.Tables("Pages").DefaultView
Me.dgChoixArticle.DataBind()
End
Sub
' Methode pour passer un article en mode "hors ligne" en cliquant sur le bouton dans le DataGrid...
' La colonne IsOnLine dans la base de données passe à la valeur 0.
Private Sub setArticleOff(ByVal ID As Integer)
Dim conn As New OleDbConnection(Me
.strConn)
Dim strSQL As String
= "UPDATE Pages SET IsOnLine=0 WHERE ID=@ID"
Dim cmd As New
OleDbCommand(strSQL, conn)
cmd.Parameters.Add(New
OleDbParameter("@ID", ID))
conn.Open()
cmd.ExecuteNonQuery()
Me
.dgChoixArticle.DataBind()
End Sub
' Methode pour passer un article en mode "en ligne" en cliquant sur le bouton dans le DataGrid...
' La colonne IsOnLine dans la base de données passe à la valeur 1.
Private Sub setArticleOn(ByVal ID As Integer
)
Dim conn As New OleDbConnection(Me
.strConn)
Dim strSQL As String
= "UPDATE Pages SET IsOnLine=1 WHERE ID=@ID"
Dim cmd As New
OleDbCommand(strSQL, conn)
cmd.Parameters.Add(New
OleDbParameter("@ID", ID))
conn.Open()
cmd.ExecuteNonQuery()
Me
.dgChoixArticle.DataBind()
End Sub
A mon avis, le problème vient du fait que je n'arrive pas à identifier exactement l'ImageButton dans ma page... J'ai pourtant essayé "Me.Page.FindControl("ibArticleOnOff")" mais ça n'a pas l'air de marcher...
Netlink
Messages postés139Date d'inscriptionmercredi 2 avril 2003StatutMembreDernière intervention12 juillet 2011 13 nov. 2005 à 23:17
Salut Cyril,
Désolé pour le temps qui s'est écoulé depuis, j'ai eu quelques problèmes de réseau.
Finalement j'ai procédé autrement, n'ayant pas réussi à utiliser correctement ta proposition...
J'ai utilisé un lien plutôt qu'un bouton, et j'ai fait au préalable un test pour définir l'état de l'article (On ou Off) et afficher l'image en conséquence (image rouge si Off, et lien pour le faire passer en On ; image verte si On, et lien pour le faire passer en Off).