IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[VB.NET] Datagrid dans tabstrip : bug ?


Sujet :

ASP.NET

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 12
    Points : 5
    Points
    5
    Par défaut [VB.NET] Datagrid dans tabstrip : bug ?
    Bonjour
    je travail avec visual studio et IIS en local
    j ai crée un datagrid ( remplie avec des boutons ) que j ai uniquement liée a une table d' 1 dimension
    je gere la datagrid grace a du code , et elle marche tres bien dans un webpage normale .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    <ie:TabStrip targetid="multipage" id="ts1" runat="server" TabDefaultStyle="color:#aaaaaa;background-color:#EEEEEE;border-color:#AAAAAA;border-width:1px;border-style:Solid;font-weight:bold;font-family:Verdana;font-size:11px;height:21;width:79;text-align:center;" TabHoverStyle="color:blue" TabSelectedStyle="color:#000000;background-color:#FFFFFF;border-bottom:none" SepDefaultStyle="background-color:#FFFFFF;border-color:#AAAAAA;border-width:1px;border-style:solid;border-top:none;border-left:none;border-right:none" Height="38px">
    </ie:TabStrip>
     
    <ie:Tab Text="Planning" />
    <ie:TabSeparator />
     
    <asp:datagrid id="MonDatagrid" style="Z-INDEX: 111; LEFT: 319px; POSITION: absolute; TOP: 119px" runat="server" Width="273" Height="41" BorderStyle="None" BorderColor="Black" CellPadding="0" BorderWidth="1px" AutoGenerateColumns="False">
     
    <ie:MultiPage id="multipage" runat="server" style="Z-INDEX: 101; LEFT: 17px; POSITION: absolute; TOP: 63px" Height="600px" Width="800px">
     
    <ie:pageview>
    							<Columns>
    <asp:TemplateColumn HeaderText="8H00">
    									<ItemTemplate>
    										<asp:Button ToolTip='<%# DataBinder.Eval(Container.DataItem, "8H00") %>' Text="" onclick="on_click_dtButton" Width="100%" Height="100%" id="BtnHor01" runat="server" BorderStyle="None" ForeColor="#404040" BackColor='<%# setcolor("BtnHor01",DataBinder.Eval(Container.DataItem, "8H00"))%>' >
    										</asp:Button>
    									</ItemTemplate>
    								</asp:TemplateColumn>
    </asp:TemplateColumn>
    </ie:pageview>
    </ie:MultiPage>
     
    'code behin : 
     
    Public Sub on_click_dtButton(ByVal sender As System.Object, ByVal e As System.EventArgs)
            Dim buttonclicked As WebControls.Button = CType(sender, WebControls.Button)
            Dim coll, line As Integer
     
     
            coll = col(buttonclicked.ID)
            line = ligne(buttonclicked.ToolTip.ToString)
            If Mycolortable.Rows(line).Item(coll) = "0" Then
                Mycolortable.Rows(line).Item(coll) = DrpDnLstChxAct.Items(DrpDnLstChxAct.SelectedIndex).Value
            Else
                Mycolortable.Rows(line).Item(coll) = "0"
            End If
     
            MonDatagrid.DataSource = Mytable
            MonDatagrid.DataBind()  'c'est le seul moyen que j ai trouvé de        rafraichir la datagrid 
     
    End Sub
     
     Public Function setcolor(ByVal id_btn As String, ByVal tooltip As String) As System.Drawing.Color
            Dim color As System.Drawing.Color
            Dim line, coll As Integer
     
            coll = col(id_btn) 'retourne le numéro de colonee suivant l id du bouton ( bidouillage ) 
            line = ligne(tooltip) ' retourne la ligne suivant la valeur de tooltip 
     
     
          'mytable liée a la datagrid a une correspondance avec Mycolortable de meme dimension qui a comme valeur un chiffre indiquant la couleur de la case et ke je modifie     
     
     
      If Mycolortable.Rows(line).Item(coll) = "0" Then
                color = System.Drawing.Color.Yellow
            End If
     
            If Mycolortable.Rows(line).Item(coll) = "1" Then
                color = System.Drawing.Color.Black
            End If
     
            If Mycolortable.Rows(line).Item(coll) = "2" Then
                color = System.Drawing.Color.Green
            End If
     
            If Mycolortable.Rows(line).Item(coll) = "3" Then
                color = System.Drawing.Color.Blue
            End If
     
            Return color
        End Function
    le probléme c'est que j ai crée un tabstrip , j ai intégré ma datagrid a l interieur ( copier coller du code ) , ainsi ke des fonctions , mais quand je modifie la valeur de la table , tout marche tres bien ( ca change de couleur quand on click sur un bouton )
    le probleme , c'est que maintenant quand je click sur un bouton de la datagrid , tous les boutons prennent comme valeur texte "soumettre la requete" , est ce un bug ?

    voila si vous avez des idées ( moi je séche ) ou des conseils sur ma méthode de devellopement ( j ai dévellopé les pages de mon tabstrip séparément et j ai copié/collé le code ( en tout cas l interface pour l'instant )

  2. #2
    Membre habitué
    Inscrit en
    Février 2003
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 113
    Points : 128
    Points
    128
    Par défaut
    Je ne comprends pas tres bien tu veux dire que tu as mis ta datagrid dans un multipage lié à un tabstrip? sinon je ne vois l'intéret de mettre une datagrid dans un tabstrip...

    J'ai regarde ton code...
    Pourquoi ne pas mettre ta datagrid dans le premier pageview??

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 12
    Points : 5
    Points
    5
    Par défaut explications
    désolé pour le manque d explications :

    oui j ai mis la datagrid et le code du flowlayout panel qui la contient dans une pageview d'une multipage . et la multipage est liée a la tabstrip .
    Il n'y dans cette exemple de code qu une pageview d une multipage , mais il y a plusieurs pageview , et bien sur dans la datagrid il y a plusieurs templatecolumn ( autant qu'il y a de colonne dans ma table et avec le meme nom que les noms des colonnes ) .

    je tenais a remercier toutes les personnes qui font fonctionner ce forum , c'est a force de recherches et de lectures de postes que j'ai pu avancé et créer ces bouts de codes

  4. #4
    Membre habitué
    Inscrit en
    Février 2003
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 113
    Points : 128
    Points
    128
    Par défaut
    Ben c'est pas ce que je vois là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <asp:datagrid id="MonDatagrid" style="Z-INDEX: 111; LEFT: 319px; POSITION: absolute; TOP: 119px" runat="server" Width="273" Height="41" BorderStyle="None" BorderColor="Black" CellPadding="0" BorderWidth="1px" AutoGenerateColumns="False"> 
     
    <ie:MultiPage id="multipage" runat="server" style="Z-INDEX: 101; LEFT: 17px; POSITION: absolute; TOP: 63px" Height="600px" Width="800px"> 
     
    <ie:pageview>
    ton pageview commence apres la déclaration de ton datagrid...

  5. #5
    Futur Membre du Club
    Inscrit en
    Janvier 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 12
    Points : 5
    Points
    5
    Par défaut erreur
    en effet il s agit d une erreur de copier coller , voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
     
    <ie:TabStrip targetid="multipage" id="ts1" runat="server" TabDefaultStyle="color:#aaaaaa;background-color:#EEEEEE;border-color:#AAAAAA;border-width:1px;border-style:Solid;font-weight:bold;font-family:Verdana;font-size:11px;height:21;width:79;text-align:center;" TabHoverStyle="color:blue" TabSelectedStyle="color:#000000;background-color:#FFFFFF;border-bottom:none" SepDefaultStyle="background-color:#FFFFFF;border-color:#AAAAAA;border-width:1px;border-style:solid;border-top:none;border-left:none;border-right:none" Height="38px"> 
    </ie:TabStrip> 
     
    <ie:Tab Text="Planning" /> 
    <ie:TabSeparator /> 
     
     
    <ie:MultiPage id="multipage" runat="server" style="Z-INDEX: 101; LEFT: 17px; POSITION: absolute; TOP: 63px" Height="600px" Width="800px"> 
     
    <ie:pageview>
     <asp:datagrid id="MonDatagrid" style="Z-INDEX: 111; LEFT: 319px;  POSITION: absolute; TOP: 119px" runat="server" Width="273" Height="41" BorderStyle="None" BorderColor="Black" CellPadding="0" BorderWidth="1px" AutoGenerateColumns="False"> 
     
                         <Columns> 
                           <asp:TemplateColumn HeaderText="8H00"> 
                               <ItemTemplate> 
                                  <asp:Button ToolTip='<%# DataBinder.Eval(Container.DataItem, "8H00") %>' Text="" onclick="on_click_dtButton" Width="100%" Height="100%" id="BtnHor01" runat="server" BorderStyle="None" ForeColor="#404040" BackColor='<%# setcolor("BtnHor01",DataBinder.Eval(Container.DataItem, "8H00"))%>' > 
                                  </asp:Button> 
                               </ItemTemplate> 
                            </asp:TemplateColumn> 
      </asp:TemplateColumn> 
     </ie:pageview> 
    </ie:MultiPage> 
     
    'code behin : 
     
    Public Sub on_click_dtButton(ByVal sender As System.Object, ByVal e As System.EventArgs) 
            Dim buttonclicked As WebControls.Button = CType(sender, WebControls.Button) 
            Dim coll, line As Integer 
     
     
            coll = col(buttonclicked.ID) 
            line = ligne(buttonclicked.ToolTip.ToString) 
            If Mycolortable.Rows(line).Item(coll) = "0" Then 
                Mycolortable.Rows(line).Item(coll) = DrpDnLstChxAct.Items(DrpDnLstChxAct.SelectedIndex).Value 
            Else 
                Mycolortable.Rows(line).Item(coll) = "0" 
            End If 
     
            MonDatagrid.DataSource = Mytable 
            MonDatagrid.DataBind()  'c'est le seul moyen que j ai trouvé de        rafraichir la datagrid 
     
    End Sub 
     
     Public Function setcolor(ByVal id_btn As String, ByVal tooltip As String) As System.Drawing.Color 
            Dim color As System.Drawing.Color 
            Dim line, coll As Integer 
     
            coll = col(id_btn) 'retourne le numéro de colonee suivant l id du bouton ( bidouillage ) 
            line = ligne(tooltip) ' retourne la ligne suivant la valeur de tooltip 
     
     
          'mytable liée a la datagrid a une correspondance avec Mycolortable de meme dimension qui a comme valeur un chiffre indiquant la couleur de la case et ke je modifie      
     
     
      If Mycolortable.Rows(line).Item(coll) = "0" Then 
                color = System.Drawing.Color.Yellow 
            End If 
     
            If Mycolortable.Rows(line).Item(coll) = "1" Then 
                color = System.Drawing.Color.Black 
            End If 
     
            If Mycolortable.Rows(line).Item(coll) = "2" Then 
                color = System.Drawing.Color.Green 
            End If 
     
            If Mycolortable.Rows(line).Item(coll) = "3" Then 
                color = System.Drawing.Color.Blue 
            End If 
     
            Return color 
        End Function

    ca devrait etre bon la , etant donné que c est uniquement qd je clique sur une bouton de mon datagrid qu'il m affiche "soumettre la requete" et pa lorque la datagrid se charge pour la premiere fois ( tout est normal la ) .
    etant donné que pour rafraichir la datagrid je fait un datagrid.databind ( ca viens peut etre de la ) il y a peut etre un autre moyen de la rafraichir. enfin je rappel que ca marchait nickel hors de mon tabstrip

  6. #6
    Membre habitué
    Inscrit en
    Février 2003
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 113
    Points : 128
    Points
    128
    Par défaut
    Rah je me souviens eu ce probleme mais je ne mets pas le doigt dessus...
    Je crois que dans mon cas j'avais mis des iframes dans mes pageview pour eviter les pb de rafraichissement...

  7. #7
    Futur Membre du Club
    Inscrit en
    Janvier 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 12
    Points : 5
    Points
    5
    Par défaut heu pq les iframe ?
    j ai regardé ce qu'était les iframe et je ne vois pas pourquoi je devrais les inégrer dans mes templatecolumn .... , je pensais principalement remédié a ce probléme soit en trouvant l origine ( surement le bouton qui lié a la table et dont la valeur text récupére le résultat d une requete que je n ai pas donné ) ou alors en forcant l affichage d un texte vide a chaque réinitialisation ( j ai déja essaye en mettant la valeur text="" ds la balise <asp:button ..... >

  8. #8
    Membre habitué
    Inscrit en
    Février 2003
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 113
    Points : 128
    Points
    128
    Par défaut
    Oui pardon, j'avais pas tout compris!
    Mais d'ou vient ce
    soumettre la requete
    ??

  9. #9
    Futur Membre du Club
    Inscrit en
    Janvier 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 12
    Points : 5
    Points
    5
    Par défaut la est le probléme
    justement , la est tout le probléme
    je ne sais pas d ou vient ce " soumettre la requete"
    j imagine que c'est vb qui met ca

    [édité par Rami ]
    [Pas de style SMS]
    les régles des forum

  10. #10
    Futur Membre du Club
    Inscrit en
    Janvier 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 12
    Points : 5
    Points
    5
    Par défaut personne n a la réponse ?
    je me permet de reposer ma question
    quelqu'un serait il d ou vient cet affichage , ou comment modifier l affichage de mes boutons dans les template column ( je souhaite qu'ils soient vides , sachant que j'ai déja essaye de modifer la valeur des textes de mes boutons en leur donnant "" ) .

  11. #11
    Membre habitué
    Inscrit en
    Février 2003
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 113
    Points : 128
    Points
    128
    Par défaut
    Regarde l'événement OnItemDataBound...

  12. #12
    Futur Membre du Club
    Inscrit en
    Janvier 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 12
    Points : 5
    Points
    5
    Par défaut ben j'ai tésté
    en suivant les conseils de JoHan31 et en parcourant a nouveau ce forum, g galéré a faire ce code , mais il semble marcher , le seul probléme c'est qu'il n change rien a mon affichage ...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
        Private Sub MonDatagrid_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles MonDatagrid.ItemDataBound
            Dim Button_trans As System.Web.UI.WebControls.Button
            Dim val_btn As String
            If e.Item.ItemIndex < 10 Then
                val_btn = "0" & e.Item.ItemIndex.ToString
            Else
                val_btn = e.Item.ItemIndex.ToString
            End If
     
            Select Case e.Item.ItemType
                Case ListItemType.Item
     
                    Button_trans = CType(e.Item.FindControl("button" & val_btn), Button)
                    Button_trans.Text = ""
            End Select
     
        End Sub
    Voila tous le boutons de mon datagrid on un nom different par templatecolumn ( la propriété de autogenerate est a false )
    qui va de buton00 a button21 qui me sert a repérer sur quel column je suis .

  13. #13
    Futur Membre du Club
    Inscrit en
    Janvier 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 12
    Points : 5
    Points
    5
    Par défaut je c pa si résolu mais ...
    bon une de mes datagrid est faite avec des template et des <asp:label>
    et je n ai plus ce probleme

    j ai résolu ca en mettant le texte dans mes boutons a la taille 1 ( on peut pa faire 0 ) et en mettant la couleur a jaune ( comme sur mes cases )
    quand on change la couleur d une case ( pas jaune ) on voit un trait sur le bouton ( le texte en tout petit ) ca aurait ete sympa qu il existe une couleur transparente pour le texte ....

    voila si vous avez des solutions plus élégantes je crache pas dessus !)

  14. #14
    Membre à l'essai
    Inscrit en
    Janvier 2003
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 20
    Points : 19
    Points
    19
    Par défaut
    Tu fait un imageboutton a la place de tes bouton

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.NET] Total dans un datagrid
    Par Golzinne dans le forum Windows Forms
    Réponses: 10
    Dernier message: 12/11/2005, 18h29
  2. [VB.NET] Linkbutton dans un DataGrid
    Par Sadneth dans le forum ASP.NET
    Réponses: 2
    Dernier message: 12/10/2005, 10h57
  3. [VB.NET] Naviguer dans un DATAGRID a l'aide de 2 boutons
    Par stephane93fr dans le forum Windows
    Réponses: 3
    Dernier message: 13/06/2005, 12h39
  4. [VB.NET] Ajout dans un datagrid
    Par geget dans le forum ASP.NET
    Réponses: 3
    Dernier message: 03/12/2004, 19h54
  5. [VB.NET] Tooltips dans un DataGrid
    Par seemax dans le forum Windows Forms
    Réponses: 9
    Dernier message: 22/04/2004, 14h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo