Salut
Je veux tout savoir sur gridview (Docmentation , exemple,...., tout ce que vous pouvez me montrer), je travaille sur une application Asp.net en code vb sous VB 2008.
s'il y a d'autres controls mieux que gridview je suis partant.
Merci
Salut
Je veux tout savoir sur gridview (Docmentation , exemple,...., tout ce que vous pouvez me montrer), je travaille sur une application Asp.net en code vb sous VB 2008.
s'il y a d'autres controls mieux que gridview je suis partant.
Merci
Oui je suis deja passé par la , mais j'ai pas trouvé ce que je cherche
bon voila ce que je cherche:
je veux selectionner une ligne (row) juste en cliquant sur, et de recuperer les info de cette ligne.
Merci
Alors pour faire cela sur ta GridView, il faut lors de l'évènement
SelectedIndexChanged faire un code, du style par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Dim row As GridViewRow row = Me.DGV_Rebond.SelectedRow
~ Lola ~
Mais avant est ce qu'il n y a pas une propriete ou quelque chose comme ca pour activer la selection des rows car de mon coté je clik sur la gridview aucune ligne n'est selectionnée.
Merci
Si tu veux faire de la selection sur un bouton de la ligne, alors il va falloir ajouter une command (button) à ta ligne. Si tu souhaite capturer le click sur la ligne entière, tu dois passer par javascript, pas de méthode standard. Sinon il doit existé des composants payants sur le web. CompenentArt le fait certainement
Alors pour selectionner une ligne d'un GridView il faut que sa déclaration soit du style :
Après là il faut que tu l'adapte pour ce que tu veux faire...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <asp:GridView ID="DGV" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" DataKeyNames="Column1"> <Columns> <asp:CommandField ShowSelectButton="True" 'une colonne avec un bouton pour selectionner la ligne /> <asp:BoundField ... 'tes colonnes contenant les données /> </Columns> </asp:GridView>
~ Lola ~
Voici un exemple de GridView qui marche bien avec la gestion des évènements en bonus :
Code HTML : 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
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 <body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server" /> <asp:Button ID="btnRebuild" runat="server" CssClass="parametrer" Text="Régénérer" /><br /> <div style="text-align:center"> <asp:UpdatePanel id="UpdatePanel1" runat="server"> <contenttemplate> <asp:Label ID="lblError" runat="server" Visible="false" ForeColor="Red" Font-Bold="true" /><br /> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BackColor="White" BorderColor="#DEDFDE" BorderStyle="None" BorderWidth="1px" CellPadding="4" ForeColor="Black" GridLines="Vertical" ShowFooter="True"> <FooterStyle BackColor="#CCCC99" /> <RowStyle BackColor="#F7F7DE" /> <Columns> <asp:TemplateField HeaderText="id"> <EditItemTemplate> <asp:Label ID="lblId" runat="server" Text='<%# Bind("id_workflow") %>'></asp:Label> </EditItemTemplate> <ItemTemplate> <asp:Label ID="lblId" runat="server" Text='<%# Bind("id_workflow") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Value"> <EditItemTemplate> <asp:TextBox ID="txtValue" runat="server" CssClass="textbox_base" Text='<%# Bind("value") %>'></asp:TextBox> </EditItemTemplate> <FooterTemplate> <asp:TextBox ID="txtValueFooter" runat="server" CssClass="textbox_base" Text='<%# Bind("value") %>'></asp:TextBox> </FooterTemplate> <ItemTemplate> <asp:Label ID="lblValue" runat="server" Text='<%# Bind("value") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="in/out"> <EditItemTemplate> <asp:RadioButton ID="radIn" runat="server" GroupName="InOut" Text="In" /> <asp:RadioButton ID="radOut" runat="server" GroupName="InOut" Text="Out" /> </EditItemTemplate> <FooterTemplate> <asp:RadioButton ID="radInFooter" runat="server" GroupName="InOut" Text="In" /><asp:RadioButton ID="radOutFooter" runat="server" GroupName="InOut" Text="Out" /> </FooterTemplate> <ItemTemplate> <asp:Label ID="lblInOut" runat="server" Text='<%# Bind("in_out") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Order"> <EditItemTemplate> <asp:TextBox ID="txtOrder" runat="server" CssClass="textbox_base" Text='<%# Bind("filter_order") %>' Width="30px"></asp:TextBox> </EditItemTemplate> <FooterTemplate> <asp:TextBox ID="txtOrderFooter" runat="server" CssClass="textbox_base" Text='<%# Bind("filter_order") %>' Width="30px"></asp:TextBox> </FooterTemplate> <ItemTemplate> <asp:Label ID="lblOrder" runat="server" Text='<%# Bind("filter_order") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Run"> <EditItemTemplate> <asp:RadioButton ID="radYes" runat="server" GroupName="YesNo" Text="Yes" /> <asp:RadioButton ID="radNo" runat="server" GroupName="YesNo" Text="No" /> </EditItemTemplate> <ItemTemplate> <asp:Label ID="lblRun" runat="server" Text='<%# Bind("run") %>'></asp:Label> </ItemTemplate> <FooterTemplate> <asp:RadioButton ID="radYesFooter" runat="server" GroupName="YesNo" Text="Yes" /><asp:RadioButton ID="radNoFooter" runat="server" GroupName="YesNo" Text="No" /> </FooterTemplate> </asp:TemplateField> <asp:TemplateField> <EditItemTemplate> </EditItemTemplate> <ItemTemplate> <asp:ImageButton ID="imgFirst" runat="server" ImageUrl="~/images/dotsoft/arrow_first.gif" OnClick="imgFirst_Click" /> <asp:ImageButton ID="imgUp" runat="server" ImageUrl="~/images/dotsoft/arrow_up_blue.gif" OnClick="imgUp_Click" /> <asp:ImageButton ID="imgDown" runat="server" ImageUrl="~/images/dotsoft/arrow_down_blue.gif" OnClick="imgDown_Click" /> <asp:ImageButton ID="imgLast" runat="server" ImageUrl="~/images/dotsoft/arrow_last.gif" OnClick="imgLast_Click" /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField ShowHeader="False"> <EditItemTemplate> <asp:Button ID="btnMettreAJour" runat="server" CausesValidation="True" CommandName="Update" Text="Mettre à jour" CssClass="valider" /> <asp:Button ID="Button2" runat="server" CausesValidation="False" CommandName="Cancel" Text="Annuler" CssClass="annuler" /> </EditItemTemplate> <ItemTemplate> <asp:Button ID="btnModifer" runat="server" CausesValidation="False" CommandName="Edit" Text="Modifier" CssClass="modifier" /> </ItemTemplate> <FooterTemplate> <asp:Button ID="btnAjouter" runat="server" CausesValidation="False" CommandName="Edit" Text="Ajouter" CssClass="ajouter" OnClick="btnAjouter_Click" /> </FooterTemplate> </asp:TemplateField> </Columns> <PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Right" /> <SelectedRowStyle BackColor="#CE5D5A" Font-Bold="True" ForeColor="White" /> <HeaderStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" /> <AlternatingRowStyle BackColor="White" /> </asp:GridView></contenttemplate> </asp:UpdatePanel> </div> </form> </body>
Code VB : 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
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
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199 ''' <summary> ''' Fill the GridView webcontro with worflow table ''' </summary> ''' <remarks></remarks> Private Sub mFillGridView() Dim sql As String = "SELECT id_workflow, value, in_out, filter_order, run FROM workflow ORDER BY filter_order" Dim SqlServer As New cBdd() Dim dttSource As DataTable = SqlServer.mDtt(_cnxString, sql) Me.GridView1.DataSource = dttSource Me.GridView1.DataBind() Dim EditIndex As Int16 = Me.GridView1.EditIndex If EditIndex <> "-1" Then Dim id As String = CType(Me.GridView1.Rows(EditIndex).FindControl("lblId"), Label).Text Dim dtt As DataTable = SqlServer.mDtt(_cnxString, "SELECT in_out, run FROM workflow WHERE id_workflow = " & id) If dtt.Rows(0).Item("in_out").ToString.Trim.ToLower = "in" Then CType(Me.GridView1.Rows(EditIndex).FindControl("radIn"), RadioButton).Checked = True Else CType(Me.GridView1.Rows(EditIndex).FindControl("radOut"), RadioButton).Checked = True End If If dtt.Rows(0).Item("run").ToString.Trim.ToLower = "true" Then CType(Me.GridView1.Rows(EditIndex).FindControl("radYes"), RadioButton).Checked = True Else CType(Me.GridView1.Rows(EditIndex).FindControl("radNo"), RadioButton).Checked = True End If End If If Me.GridView1.Rows.Count > 0 Then 'On masque les flèches last et down sur la dernière ligne If Me.GridView1.EditIndex <> Me.GridView1.Rows.Count - 1 Then CType(Me.GridView1.Rows(Me.GridView1.Rows.Count - 1).FindControl("imgLast"), ImageButton).Visible = False CType(Me.GridView1.Rows(Me.GridView1.Rows.Count - 1).FindControl("imgDown"), ImageButton).Visible = False End If 'On masque les flèches first et up sur la première ligne If Me.GridView1.EditIndex <> 0 Then CType(Me.GridView1.Rows(0).FindControl("imgFirst"), ImageButton).Visible = False CType(Me.GridView1.Rows(0).FindControl("imgUp"), ImageButton).Visible = False End If End If End Sub ''' <summary> ''' CANCEL EDIT ''' </summary> ''' <param name="sender"></param> ''' <param name="e"></param> ''' <remarks></remarks> Private Sub grdResult_RowCancelingEdit(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles GridView1.RowCancelingEdit Me.GridView1.EditIndex = -1 Call Me.mFillGridView() End Sub ''' <summary> ''' DELETE ''' </summary> ''' <param name="sender">Bouton supprimer</param> ''' <param name="e"></param> Private Sub grdResult_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GridView1.RowDeleting '1. On efface la ligne Dim id As String = CType(Me.GridView1.Rows(e.RowIndex).FindControl("lblId"), Label).Text Dim SqlServer As New cBdd() Dim sql As String = "DELETE FROM worflow WHERE id = " & id SqlServer.mExecuteNonQuery(_cnxString, sql) '2. On recharge le tableau Call Me.mFillGridView() End Sub ''' <summary> ''' EDITING ''' </summary> ''' <param name="sender">Gridview</param> ''' <param name="e"></param> Private Sub grdResult_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GridView1.RowEditing Me.GridView1.EditIndex = e.NewEditIndex Call Me.mFillGridView() End Sub ''' <summary> ''' UPDATE ''' </summary> ''' <param name="sender"></param> ''' <param name="e"></param> ''' <remarks></remarks> Private Sub grdResult_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GridView1.RowUpdating Me.lblError.Visible = False '1. Récupération des données de la ligne Dim id As String = CType(Me.GridView1.Rows(e.RowIndex).FindControl("lblId"), Label).Text Dim value As String = Trim(CType(Me.GridView1.Rows(e.RowIndex).FindControl("txtValue"), TextBox).Text.Replace("'", "''")) Dim in_out As String = "in" If Trim(CType(Me.GridView1.Rows(e.RowIndex).FindControl("radOut"), RadioButton).Checked) Then in_out = "out" End If Dim filter_order As String = Trim(CType(Me.GridView1.Rows(e.RowIndex).FindControl("txtOrder"), TextBox).Text) Dim run As String = "0" If Trim(CType(Me.GridView1.Rows(e.RowIndex).FindControl("radYes"), RadioButton).Checked) Then run = "1" End If '2. Tests de validation des données Dim myRegex = New Regex("^[a-zA-Z0-9\x5F]+$") If Not value = "" AndAlso Not myRegex.IsMatch(value) Then Me.lblError.Visible = True Me.lblError.Text = "The datafield value is not corect" CType(Me.GridView1.Rows(e.RowIndex).FindControl("txtValue"), TextBox).Focus() Return End If If Not isInteger(filter_order) Then Me.lblError.Visible = True Me.lblError.Text = "The order must be an integer" CType(Me.GridView1.Rows(e.RowIndex).FindControl("txtOrder"), TextBox).Focus() Return End If '3. Execution de la requête Dim SqlServer As New cBdd() Dim sql As New Text.StringBuilder("UPDATE workflow SET ") sql.Append("value = '") sql.Append(value) sql.Append("', in_out = '") sql.Append(in_out) sql.Append("', filter_order = ") sql.Append(filter_order) sql.Append(", run = ") sql.Append(run) sql.Append(" WHERE id_workflow = ") sql.Append(id) SqlServer.mExecuteNonQuery(_cnxString, sql.ToString) '4 Rechargement du tableau de résultat Me.GridView1.EditIndex = "-1" Call Me.mFillGridView() End Sub ''' <summary> ''' INSERT ''' </summary> ''' <param name="sender"></param> ''' <param name="e"></param> ''' <remarks></remarks> Protected Sub btnAjouter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Me.lblError.Visible = False '1. Récupération des données de la ligne Dim value As String = Trim(CType(Me.GridView1.FooterRow.FindControl("txtValueFooter"), TextBox).Text.Replace("'", "''")) Dim in_out As String = "in" If Trim(CType(Me.GridView1.FooterRow.FindControl("radOutFooter"), RadioButton).Checked) Then in_out = "out" End If Dim filter_order As String = Trim(CType(Me.GridView1.FooterRow.FindControl("txtOrderFooter"), TextBox).Text) Dim run As String = "0" If Trim(CType(Me.GridView1.FooterRow.FindControl("radYesFooter"), RadioButton).Checked) Then run = "1" End If '2. Tests de validation des données Dim myRegex = New Regex("^[a-zA-Z0-9\x5F]+$") If Not value = "" AndAlso Not myRegex.IsMatch(value) Then Me.lblError.Visible = True Me.lblError.Text = "The datafield value is not corect" CType(Me.GridView1.FooterRow.FindControl("txtValueFooter"), TextBox).Focus() Return End If If Not isInteger(filter_order) Then Me.lblError.Visible = True Me.lblError.Text = "The order must be an integer" CType(Me.GridView1.FooterRow.FindControl("txtOrderFooter"), TextBox).Focus() Return End If '3. Execution de la requête Dim SqlServer As New cBdd() Dim sql As New Text.StringBuilder("INSERT INTO workflow (value, in_out, filter_order, run)") sql.Append(" VALUES ('") sql.Append(value) sql.Append("', '") sql.Append(in_out) sql.Append("', ") sql.Append(filter_order) sql.Append(", ") sql.Append(run) sql.Append(")") SqlServer.mExecuteNonQuery(_cnxString, sql.ToString) '4 Rechargement du tableau de résultat Call Me.mFillGridView() End Sub
Je le donne de façon brut.. étudie le un peu et si tu as des questions j'y répondrai
Arrêtez de poster des liens! Expliquez! (ça évite les erreur HTTP 404)
L'homme est plus fort que la machine... ne renoncez jamais
merci a tous*
bon voila j'ai un peu avancé.
mais la je blok au niveau du filtre:
je veux faire une liste deroulante qui comportera les champs du filtre: age,nom,prenom,sexe...
et un textbox pour faire le filtre :
je veux en tapant par exemple les premieres lettres du nom d'une personne ;ma gridview se rempli par les ou le resultat.
dans cet exemple le critere je l'ai choisi par defaut est le nom.
voila ma requette :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Public Function Filtrer( ByVal valeurCritere As String) ViewData("ViewFiltrer") = From p In passiondb.Client Where p.nom Like "%" & valeurCritere Select p Return ViewData("ViewFiltrer") End Function
et voila le mon code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Me.GridView1.Columns.Clear() Dim filtr As New gestion_clinique.Passionsmodel ViewData("ViewFiltrer") = filtr.Filtrer(cbxCritere.SelectedItem.ToString, txtCritereVal.Text) Me.GridView1.DataSource = ViewData("ViewFiltrer") Me.GridView1.DataBind()
helas ca marche pas ca donne pas d'erreur.
merci d'avance
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager