Accueil
Accueil Le Club Delphi Kylix C C++ Java J2EE DotNET & C# Visual Basic Access Pascal Dev Web PHP ASP XML UML SQLSGBD Windows Linux Autres
logo

precedent    sommaire    suivant   


Comment définir la taille d'une colonne de DataGrid?
auteur : Didier Danse
Dans le code behind dans la méthode liée à l'évènement DataBinding:

e.Item.Cells(Colonne).Width = New Unit(tailleEnPx)
où Colonne et tailleEnPx sont des entiers.


Comment passer un argument à la fonction liée à l'événement OnClick d'un bouton?
auteur : Didier Danse
Il est possible de passer un argument à une fonction liée à l'événement OnClick d'un bouton.

Pour cela, il suffit d'utiliser la propriété CommandArgument. Cette propriété est très utile principalement lorsque l'on souhaite mettre un bouton dans un Repeater, un DataList ou un DataGrid.

<asp:Button runat=server CommandArgument='<%# DataBinder.Eval(Container.DataItem, "champ") %>' />
Dans la fonction liée à l'événement:

Public Sub Delete(ByVal sender As Object, ByVal e As System.EventArgs)
Dim bu As Button = CType(sender, Button)
Dim argument As String = bu.CommandArgument
End Sub

Pourquoi dois-je cliquer deux fois pour afficher une autre page de mon DataGrid?
auteur : Didier Danse
Cela est certainement dû au fait que vous chargez les informations du DataGrid AVANT d'effectuer le changement de page.

Comment cela peut-il arriver? Tout simplement en effectuant un DataBind dans le Page_Load de la page.

Il suffit donc de faire:

Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
If Not Me.IsPostBack Then
' Définition de la source à faire
dataGrid1.DataBind
End If
End Sub

Private Sub dtgFiltreIndicateurs_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs)
' Définition de la source à faire
dataGrid1.CurrentPageIndex = e.NewPageIndex
dataGrid1.DataBind
End Sub

Comment changer la taille de la textbox d'édition de mon datagrid ?
auteur : David Pedehourcq
Voici un petit exemple de code :

Dans la page .aspx :
<asp:DataGrid id="MonDatagrid" runat="server" AutoGenerateColumns="False">
   <Columns>
      <asp:TemplateColumn HeaderText="Colonne1">
         <ItemTemplate>
             <%#Container.DataItem("nomdemacolonne")%>
         </ItemTemplate>

         <EditItemTemplate>
             <asp:Textbox runat="server" width="600" maxlength="600"/>
          </EditItemTemplate>
      </asp:TemplateColumn>
dans le code-behind

Private Sub MonDatagrid_PreRender(s As Object, e As EventArgs)
   If MonDatagrid.EditItemIndex > -1 Then
      Dim matextbox As TextBox
      matextbox= CType(MonDatagrid.Items(MonDatagrid.EditItemIndex).Cells(0).Controls(0), TextBox)
      matextbox.Width = Unit.Parse("4cm")
      'on peut biensur changer d'autre propriétées de la textbox d'édition des données ;-)
   End If
End Sub

Comment changer la couleur d'une cellule d'un datagrid ?
auteur : David Pedehourcq
Dans cette exemple on va mettre un fond rouge à toutes les cellules de la 4ème ligne de "Mondatagrid", sachant qu'il comporte 4 colonnes :

Private Sub Mondatagrid_ItemDataBound(ByVal sender As Object, ByVal e As _
System.Web.UI.WebControls.DataGridItemEventArgs) Handles Mondatagrid.ItemDataBound
    If Not e.Item.ItemIndex = -1 Then
        If e.Item.ItemIndex=4 Then
            e.Item.Cells(0).BackColor = System.Drawing.Color.Red
            e.Item.Cells(1).BackColor = System.Drawing.Color.Red
            e.Item.Cells(2).BackColor = System.Drawing.Color.Red
            e.Item.Cells(3).BackColor = System.Drawing.Color.Red
        End If
    End If
End Sub

Comment rendre une colonne invisible si AutoGenerateColumns="true" ?
auteur : David Pedehourcq
En effet, beaucoup d'entre nous l'on remarqué, lorsque le datagrid a sa propriété AutoGenerateColumns à "true" le code :
Mondatagrid.columns(1).visible = False
NE MARCHE PAS En effet ce code ne marche que si votre datagrid est fait à base de templates columns. Il existe cependant une astuce : dans la page aspx :

<asp:DataGrid id="Mondatagrid" runat="server" AutoGenerateColumns="True" 
 OnItemDataBound="Mondatagrid_OnItemDataBound"/>
dans le code-behind

Private Sub Mondatagrid_ItemDataBound(s As Object, e As DatagridItemEventArgs)
  e.Item.Cells(1).Visible = False
End Sub

precedent    sommaire    suivant   

Consultez les autres F.A.Q's


Les sources présentés sur cette pages sont libre de droits, et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©2007  Developpez LLC. Tout droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérets. Cette page est déposée à la SACD.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com