begin process at 2012 05 27 18:09:54
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive ASP & ASP.NET

 > 

Archives ASP & ASP.NET

 > 

AU SECOURS !!!!

 > 

[ASP.NET/VB.NET] ImageButton dans un DataGrid...


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[ASP.NET/VB.NET] ImageButton dans un DataGrid...

vendredi 28 octobre 2005 à 19:41:17 | [ASP.NET/VB.NET] ImageButton dans un DataGrid...

Netlink

Membre Club
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 :

<Dans le fichier Default.aspx>
<asp:datagrid id="dgChoixArticle" runat="server" Width="100%" Visible="False" AllowPaging="True"
       AllowSorting="True" AutoGenerateColumns="False" CellPadding="5">
       <Columns>
        <asp:TemplateColumn HeaderText="Titre">
         <ItemTemplate>
          <a href='Default.aspx?EditID=<%# DataBinder.Eval(Container.DataItem, "ID") %>&C=<%# DataBinder.Eval(Container.DataItem, "Categorie") %>'>
           <%# DataBinder.Eval(Container.DataItem, "Titre") %>
          </a>
         </ItemTemplate>
        </asp:TemplateColumn>
        <asp:BoundColumn DataField="DateCreation" HeaderText="Post&amp;eacute; le" DataFormatString="{0:dd/MM/yyyy}"></asp:BoundColumn>
        <asp:BoundColumn DataField="Login" HeaderText="Auteur"></asp:BoundColumn>
        <asp:BoundColumn DataField="Categorie" HeaderText="Cat&amp;eacute;gorie"></asp:BoundColumn>
        <asp:TemplateColumn HeaderText="Actif">
         <ItemTemplate>
          <asp:ImageButton id="ibArticleOnOff" ImageUrl="" runat="server" Visible="True"></asp:ImageButton>
         </ItemTemplate>
        </asp:TemplateColumn>
       </Columns>
       <PagerStyle Font-Size="XX-Small" Font-Names="Tahoma,Verdana,Sans-serif" BorderColor="Silver"
        HorizontalAlign="Center" ForeColor="LightSteelBlue" Position="TopAndBottom" Mode="NumericPages"></PagerStyle>
</asp:datagrid>


<Dans le fichier Default.aspx.vb>
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"
            CType(ibArticleOnOff, ImageButton).CommandName = "SetOffLine"
            CType(ibArticleOnOff, ImageButton).CommandArgument = dr("ID")
        ElseIf dr("IsOnLine") = 1
Then
            CType(ibArticleOnOff, ImageButton).ImageUrl = "../Media/Images/Icones/OffLine.gif"
            CType(ibArticleOnOff, ImageButton).CommandName = "SetOnLine"
            CType(ibArticleOnOff, ImageButton).CommandArgument = dr("ID")
        End
If
    Next

    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...

Merci d'avance pour votre précieuse aide.


@ bientôt, Mathieu

samedi 29 octobre 2005 à 01:56:10 | Re : [ASP.NET/VB.NET] ImageButton dans un DataGrid...

jesusonline

Membre Club Administrateur CodeS-SourceS
Bonjour,

c'est normal : Me.Page.FindControl("ibArticleOnOff") correspond à quelle ligne ? la est le problème.

Pour faire ca, il faut utiliser l'event databound de l'objet datagrid, et ensuite tu peux faire un e.item.findControl("..")

;)


Cyril - MVS - MCP ASP
mercredi 2 novembre 2005 à 20:53:35 | Re : [ASP.NET/VB.NET] ImageButton dans un DataGrid...

Netlink

Membre Club

Salut Cyril,

Merci pour ta réponse, je viens de rentrer de vacances j'essaye ta solution dans la fin de la semaine ;)

@ bientôt, Mathieu

dimanche 13 novembre 2005 à 23:17:34 | Re : [ASP.NET/VB.NET] ImageButton dans un DataGrid...

Netlink

Membre Club

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).

@ bientôt, Mathieu



Cette discussion est classée dans : pages, id, imagebutton, ibarticleonoff, isonline


Répondre à ce message

Sujets en rapport avec ce message

Mot de passe crypté! [ par Paulo ] Salut a tous!Je débute l'ASP et je fais un site dans lequel les utilisateurs doivent s'indentifier par mot de passe et ID. Ensuite, en navigant de pag ImageButton - Reload complet d'une page... [ par emmanuelcastellani ] Bonjour,Je suis nouveau et sur ce forum, et en asp.net.Ma problématique me semble simple, mais je n'ai malheureusement pas réussi à trouver ce qu'il f autocomplete [ par waterw72 ] Bonjour, En référence à ce sujet : http://blogs.codes-sources.com/cyril/archive/2007/10/16/autocomplete-keyvaluepair-identifiant-id-key-toolkit-autoco DropDownList et Paramètre ASP.NET [ par 76julien ] Bonjour à tous !!Mon probleme est un probleme de passage de paramètre dans l'URL...J'ai un DropDownList qui est alimenté en dynamique grace à une requ Problème d'ID (changement automatique) [ par niki1291 ] Bonjour à toutes et à tous,Voilà mon problème, j'ai un bout de code (le suivant) :      <asp:DropDownList runat="server" AutoPostBack="false" ID="DdlA Comment passer ma valeur de DropDownList à mon Datasource? [ par vinzemuls ] Bonjour,Voilà j'ai une DropDownlist qui est relié à ma base de donnée. Je souhaite transmettre à ma requete la valeur que je sélectionne pour y faire Changer imageURL d'un ImageButton au load d'un datagrid [ par Angeline67 ] Bonjour,je bute sur un problème dans mon datagrid.J'ai un datagrid dans une page ASP.NET. J'ai des templatecolumns qui contiennent des ImageButton ain Problème de niveau avec les ID [ par niki1291 ] Bonjour à toutes et à tous, J'ai un problème avec des champs "asp:TextBox" et "asp:ImageButton". Je leur attribue une ID à chacun mais n'arrive pas à Comment créer une fonction accessible sur toutes mes pages ASP.NET [ par vinzemuls ] Bonjour,je souhaites utiliser une fonction avec des arguments différents sur plusieurs pages de mon site. comment la rendre utilisables sur toutes les


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales