équivalent vb vb.net

cs_tortuedu74 Messages postés 99 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 27 mai 2009 - 12 mai 2009 à 17:10
cs_tortuedu74 Messages postés 99 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 27 mai 2009 - 19 mai 2009 à 13:52
bonjour,

est-ce qu'il existe un équivalent en VB.NET de:
       oform.tot.checked

(oform est une balise Form)
(toto est une checkbox)

Merci

16 réponses

Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
12 mai 2009 à 19:29
Bonjour,

Qu'appele-tu balise ? développe-tu un site/service web ou une application WinForm ?

Merci
cs_tortuedu74 Messages postés 99 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 27 mai 2009
13 mai 2009 à 07:46
Ben c'est toujours la même appli Mayzz, celle ou je t'ai donner toutes les sources, c'est un site web en aspx.
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
13 mai 2009 à 09:12
Ah oui, effectivement, (Hi...)

Pour ton application en fait, tu m'excusera mais je t'ai donné une réponse qui n'était pas correcte, du moins je me suis trompé dans mon post, en faite, dans ton code tu utilise une balise HTML pour le checkbox,

<

inputid="ckbx"type="checkbox"/>
Or, ces balises son purement HTML et en aucun cas accessible par le code behind du formulaire (ce que l'on nomme coté client) mais par des Script en vbScript ou JavaScript , pour cela il te faut utiliser un contrôle ASP.Net Serveur, de ce faite, ton contrôle sera accessible via ton code behind, et tu pourra appeler ton checkbox comme tu l'as décrit plus haut (Ckbx.Checked) :

<

asp:CheckBoxID="Ckbx"runat="server"/>Pour infos :

Lors ce que tu appelle une page ASPX depuis ton navigateur, le serveur compile les composant Serveur présents dans ta page et les transformes en coposant HTML(Les composants comme les DataLists par exemple ne sont que de simples tableaux html créer par l'application, il reproduise le comportement que tu essaye d'avoir avec ton tableau mais de façon automatique: pas ou peu de code à saisir), idem pour le comportement des contrôles, lors d'un click sur un bouton ASP Serveur, la page est renvoyé au serveur, le code présent dans l'évenement 'Click' est exécuté et la page t'es renvoyé avec les modifications apportés à celle-ci.

C'est un peu dur à expliqué, d'ailleurs moi même j'ai eu beaucoup de mal à comprendre le système, c'est pour cela que ton code est très complexe, car quand on crée un site web en asp.Net, on choisi soit de travailler en grande partie coté serveur (dans la majorité des cas) soit coté client, mais rarement à 50% des deux, c'est un terrain glissant (pour ce qui est de l'événementiel).

Voila, en espérant que cela puisse te servir, je te conseille surtout de consulter des tutoriaux sur l'asp.Net...

@+ Mayzz
cs_tortuedu74 Messages postés 99 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 27 mai 2009
14 mai 2009 à 08:24
OK ben je te remercie bien.

Du coup j'ai séparer le code vb.net et le code aspx.
Dans le code aspx, je n'utilise que des fonctions .net.
Là j'ai un gridview avec des boutons modifier et supprimer (générer automatiquement par visual studio 2008),
Mais saurais-tu me dire pourquoi quand je j'affiche dans le navigateur et que je clic sur un des deux boutons, il y a un message d'erreur qui dit:
"La méthode spécifiée n'est pas prise en charge."?

Merci.
A+

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
14 mai 2009 à 13:14
Bonjour,

J'aurais voulu plus de détails sur l'erreur (le reste du message d'erreur), et par la même occasion dis moi quelle est la source de données de ton gridview est-elle codée ?
cs_tortuedu74 Messages postés 99 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 27 mai 2009
14 mai 2009 à 15:45
Ma source de donnée est en XML.
(toujours le même XML)

et mon erreur:

<title>La méthode spécifiée n'est pas prise en charge.</title><style><![CDATA[
body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;}
p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px}
b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px}
H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red }
H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon }
pre {font-family:"Lucida Console";font-size: .9em}
.marker {font-weight: bold; color: black;text-decoration: none;}
.version {color: gray;}
.error {margin-bottom: 10px;}
.expandable { text-decoration:underline; font-weight:bold; color:navy; cursor:hand; }
]]></style>Erreur du serveur dans l'application '/Bureau3'.
<hr color="silver" size="1" width="100%" />
La méthode spécifiée n'est pas prise en charge.
Description :
Une exception non gérée s'est produite au moment de l'exécution de la
demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur
l'erreur et son origine dans le code.

Détails de l'exception:
System.NotSupportedException: La méthode spécifiée n'est pas prise en
charge.

Erreur source:

Une exception non gérée s'est produite lors de l'exécution de la
demande Web actuelle. Les informations relatives à l'origine et l'emplacement de
l'exception peuvent être identifiées en utilisant la trace de la pile
d'exception ci-dessous.


Trace de la
pile:

[NotSupportedException: La méthode spécifiée n'est pas prise en charge.]

System.Web.UI.DataSourceView.ExecuteUpdate(IDictionary keys, IDictionary values, IDictionary oldValues) +29
System.Web.UI.DataSourceView.Update(IDictionary keys, IDictionary values, IDictionary oldValues, DataSourceViewOperationCallback callback) +92
System.Web.UI.WebControls.GridView.HandleUpdate(GridViewRow row, Int32 rowIndex, Boolean causesValidation) +907
System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +704
System.Web.UI.WebControls.GridView.OnBubbleEvent(Object source, EventArgs e) +95
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
System.Web.UI.WebControls.GridViewRow.OnBubbleEvent(Object source, EventArgs e) +123
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
System.Web.UI.WebControls.ImageButton.OnCommand(CommandEventArgs e) +111
System.Web.UI.WebControls.ImageButton.RaisePostBackEvent(String eventArgument) +176
System.Web.UI.WebControls.ImageButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565

Merci
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
14 mai 2009 à 17:31
D'après ce que je vois, on a du te conseiller de passer par un xlmdatasource et un datagrid ? c'est ca ? en faite quand tu m'as donné ta source c'est la première des choses que j'ai essayer de faire, le souci c'est qu'apparement le format xml de firebird n'est pas pris en charge par le xmldatasource de VS.


Pour bien faire et avoir un code propre, il faudrait que tu crée une classe de traduction entre ton fichier xml avec un xmlreader par code un peu comme le fait le code de ton aspx (mais créer des méthodes get, input, delete, update). C'est le plus gros du travail.

En suite le reste c'est du gateau, il te faut juste ajouté des composants vs à ton formulaire (datalist, datagrid, détailview ou formview) et les relier à des sources de données ObjectDataSource liés à ta classe de traduction.

Voila c'est complexe mais c'est une idée, comment créer cette classe ? Personnelement je n'ai pas vraiement eu le temps d'analyser le format de ton xml, donc sur ça je ne pourrais pas vraiment t'aiguiller...

@+
cs_tortuedu74 Messages postés 99 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 27 mai 2009
15 mai 2009 à 17:17
ok, merci.

Au cas ou tu aurais une autre idée, mon xml est de type:

<ENFANT nom="PETIT" prenom="Jean" age="12"/>
<ENFANT nom="GRAND" prenom="Jojo" age="18"/>
<ENFANT nom="MOYEN" prenom="Lola" age="15"/>

Merci
cs_tortuedu74 Messages postés 99 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 27 mai 2009
15 mai 2009 à 17:20
Par contre, si j'utilise un XML de type:

<ENFANT>
  < nom>PETIT</nom>
  < prenom>Jean


  12
</ENFANT>
<ENFANT>

  < nom>GRAND</nom>

  < prenom>Jojo



  18

</ENFANT>

là le datasource ne prend pas en charge.
cs_tortuedu74 Messages postés 99 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 27 mai 2009
15 mai 2009 à 17:26
heu non en fait c'est un gridview, et oui avec un xmldatasource
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
16 mai 2009 à 06:25
Salut,

En fait, je pense que dans une classe tu devrais présenter les choses comme ceci:

Je t'ai fait une partie du boulot (ça m'a pris 5 petites minutes) je te laisse faire le reste :

Dans le dossier APP_Code de ton application, ajoute une classe nomé Identitys (juste le fichier), puis efface tout le code qu'elle contient et colle ce code dedans :

Imports

Microsoft.VisualBasic
Public

Class Identite

Private _Nom
As
String

Private _Prenom
As
String

Private _Age
As
Integer

Private _ID
As
Integer

Property Nom()
As
String

Get

Return _Nom

End
Get

Set(
ByVal value
As
String)_Nom = value

End
Set

End
Property

Property Prenom()
As
String

Get

Return _Prenom

End
Get

Set(
ByVal value
As
String)_Prenom = value

End
Set

End
Property

Property Age()
As
Integer

Get

Return _Age

End
Get

Set(
ByVal value
As
Integer)_Age = value

End
Set

End
Property

Property ID()
As
Integer

Get

Return _ID

End
Get

Set(
ByVal value
As
Integer)_ID = value

End
Set

End
PropertyEnd

ClassPublic

Class Itentites

Public
Function GetAllIdentite()
As List(
Of Identite)

Dim AI
As
New List(
Of Identite)

'[ton code qui va lire les identit‚s dans la base xml...]

'[Puis les ajouter … la liste AI via une boucle For Each ou autre...]

Return AI

End
Function

Public
Sub DeleteIdentite(
ByVal Ident
As Identite)

'[Le code qui va recherch‚ l'‚l‚ment avec l'id s‚pcifi‚ et le supprimer de ta base...]

'[Pour rep‚rer l'‚l‚ment … supprimer, tu n'auras juste qu'… te servir de Ident.ID...]

End
Sub

Public
Function AddNew(
ByVal NewIdent
As Identite)
As
Boolean

Try

'[Ici le code te permettant d'ajouter un ‚l‚ment … ton xml en te servant de la valeur de NewIdent...]

Return
True

Catch ex
As Exception

Return
False

End
Try

End
Function

Public
Function UpdateIdent(
ByVal Ident
As Identite)
As
Boolean

Try

'[Ici le code te permettant de modifier ton xml en te servant de la valeur de NewIdent...]

'[Pour rep‚rer l'‚l‚ment … modifier, tu n'aura juste qu'… te servir de Ident.ID...]

Return
True

Catch ex
As Exception

Return
False

End
Try

End
FunctionEnd

ClassPS: Si ton répertoire App_Code n'existe pas alors fais "Site web" >> "Ajouter  un nouvel élément" >> "Classe" puis tape "Identitys", ensuite un message te préviendra qu'il va placer la classe dans le répertoire App_Code et le créer le cas échéant.

Par la suite, ajoute une page à ton projet, supprime tout le code qu'elle contient en mode source (Pas le code behind le code du fichier avec l'extension .aspx) et colle cela dedans:

<%

@
Page
Language="VB"
AutoEventWireup="false"
CodeFile="Default.aspx.vb"
Inherits="_Default" %>
<!

DOCTYPE
html
PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><

html
xmlns="http://www.w3.org/1999/xhtml"><

head
runat="server">

<title></title></

head><

body>

<form
id="form1"
runat="server">

<div>

<br
/>Avec un GridView :

<br
/>

<asp:GridView
ID="GV_Ident"
runat="server"
AllowPaging="True"

AutoGenerateColumns="False"
DataSourceID="ODS_Ident"
Width="900px">

<Columns>

<asp:CommandField
ButtonType="Button"
ShowDeleteButton="True"

ShowEditButton="True"
ShowSelectButton="True"
/>

<asp:BoundField
DataField="Nom"
HeaderText="Nom"
SortExpression="Nom"
/>

<asp:BoundField
DataField="Prenom"
HeaderText="Prenom"

SortExpression="Prenom"
/>

<asp:BoundField
DataField="Age"
HeaderText="Age"
SortExpression="Age"
/>

<asp:BoundField
DataField="ID"
HeaderText="ID"
SortExpression="ID"

Visible="False"
/>

</Columns>

</asp:GridView>

<br
/>

<asp:ObjectDataSource
ID="ODS_Ident"
runat="server"

DataObjectTypeName="Identite"
DeleteMethod="DeleteIdentite"

InsertMethod="AddNew"
SelectMethod="GetAllIdentite"
TypeName="Itentites"

UpdateMethod="UpdateIdent"></asp:ObjectDataSource>

</div>

</form></

body></

html>Voila, t'u n'as plus qu'a mettre en forme ton gridview, pour cela tu as la mise en forme automatique, dans le smartTag, les feuille de theme de visual studio ou le CSS, a toi de voir.

Puis le code à saisir pour faire le lien entre ta base Firebird et les procédure de ta classe objet.

@+ Mayzz 

PS: ===> Si ton problème est résolu, pense à cliquer sur le bouton en question, si tu galère dis le moi...

 
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
16 mai 2009 à 06:28
Poouwa, c'est crade, je repost sans la mise en forme (Désolé)

Dans une classe :

Imports Microsoft.VisualBasic
Public Class Identite
Private _Nom As String
Private _Prenom As String
Private _Age As Integer
Private _ID As Integer
Property Nom() As String
Get
Return _Nom
End Get
Set(ByVal value As String)
_Nom = value
End Set
End Property
Property Prenom() As String
Get
Return _Prenom
End Get
Set(ByVal value As String)
_Prenom = value
End Set
End Property
Property Age() As Integer
Get
Return _Age
End Get
Set(ByVal value As Integer)
_Age = value
End Set
End Property
Property ID() As Integer
Get
Return _ID
End Get
Set(ByVal value As Integer)
_ID = value
End Set
End Property
End Class
Public Class Itentites
Public Function GetAllIdentite() As List(Of Identite)
Dim AI As New List(Of Identite)
'[ton code qui va lire les identit‚s dans la base xml...]
'[Puis les ajouter … la liste AI via une boucle For Each ou autre...]
Return AI
End Function
Public Sub DeleteIdentite(ByVal Ident As Identite)
'[Le code qui va recherch‚ l'‚l‚ment avec l'id s‚pcifi‚ et le supprimer de ta base...]
'[Pour rep‚rer l'‚l‚ment … supprimer, tu n'auras juste qu'… te servir de Ident.ID...]
End Sub
Public Function AddNew(ByVal NewIdent As Identite) As Boolean
Try
'[Ici le code te permettant d'ajouter un ‚l‚ment … ton xml en te servant de la valeur de NewIdent...]
Return True
Catch ex As Exception
Return False
End Try
End Function
Public Function UpdateIdent(ByVal Ident As Identite) As Boolean
Try
'[Ici le code te permettant de modifier ton xml en te servant de la valeur de NewIdent...]
'[Pour rep‚rer l'‚l‚ment … modifier, tu n'aura juste qu'… te servir de Ident.ID...]
Return True
Catch ex As Exception
Return False
End Try
End Function
End Class

Dans l'aspx:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>

<form id="form1" runat="server">




Avec un GridView :


<Columns>





</Columns>






</form>

</html>

@+
cs_tortuedu74 Messages postés 99 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 27 mai 2009
18 mai 2009 à 08:40
Ah ok,

Je ne savait pas qu'on pouvait faire comme ça, ça a l'air super interressant.
Il reste juste une question, comment tu arrive a faire le lien avec le xml?
Parce que je ne vois nul par un endroit ou on l'appel?

Merci bien en tout cas
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
18 mai 2009 à 09:31
En fait, je t'aurais bien aidé la dessus aussi, mais le schéma de ton xml que tu m'as montré est différent de celui de ta source de départ... Donc du coup je ne sais pas comment faire...


Sinon poste moi un exemplaire (avec des données factices si tu veux) de ton xml finale, celui qui constitura ta base de données, mais au complet car le code pour lire dans un xml se base sur son format donc si tu me donne un format éroné, forcément la source ne marchera que pour ce format et ne fonctionnera pas sur ta base finale.


@+
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
18 mai 2009 à 10:18
Re !
En fait, je vais te poster la méthode GetAllIdentite pour te donner un idée de comment faire le lien entre ta classe et ton xml:

Public Function GetAllIdentite() As List(Of Identite)
Dim AI As New List(Of Identite)
'[ton code qui va lire les identites dans la base xml...]
'[Puis les ajouter . la liste AI via une boucle For Each ou autre...]
Dim CurrentDirectory As String = Reflection.Assembly.GetExecutingAssembly.CodeBase
Dim reader As New XmlTextReader("c:\test\App_data\DB.xml") ' *** /!\ N'oublie pas de rensaigner le chemin réel de ton xml ici /!\ ***
Try
While reader.Read()
If reader.NodeType = XmlNodeType.Element Then
Dim Ident As New Identite
Ident.Nom = reader.GetAttribute("nom")
Ident.Prenom = reader.GetAttribute("prenom")
Ident.Age = reader.GetAttribute("age")
AI.Add(Ident)
End If
End While
Catch
End Try
Return AI
End Function

Voila cela te donnera une idée de la marche à suivre, j'ai pris comme exemple le schema xml suivant que tu m'as laissé :

?xml version="1.0" encoding="utf-8" ?>

<ENFANT nom="PETIT" prenom="Jean" age="12"/>
<ENFANT nom="GRAND" prenom="Jojo" age="18"/>
<ENFANT nom="MOYEN" prenom="Lola" age="15"/>

Pour que ton code fonctionne il faut que tu ajoute (la ou j'ai lasser des commentaires) le code dans les autres procédure, de modification et de suppression mais uniquement qi tu tiens à faire fonctionner les bouton 'Modifier' et 'Supprimer' de ton GridView, si ce n'est pas le cas et que tu désire juste un GridView en lecture seule, alors désactive les fonctions correspondantes dans le smartTag de celui-ci.

Voila @+

Merci de pas oublié le bouton "Réponse accepté" si tel est le cas.
cs_tortuedu74 Messages postés 99 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 27 mai 2009
19 mai 2009 à 13:52
OK, ben je regarde ça et te tiens au courant.

Merci beaucoup.
Rejoignez-nous