J'applique l'Option Strict On.
J'ai un simple bouton auquel est associé une procédure.
Je veux occasionner un traitement en fonction du ID du bouton ou encore
appliquer un style.
Ce qui fonctionne bien en Option Strict Off plante en mode ON avec l'erreur
BC30574: Option Strict On rejette toute liaison tardive.
Je sais qu'il s'agit d'un problème de conversion et de déclaration mais j'ai
beau essayer 30 méthides j'ai toujours l'erreur.
Voici un bout d'exemple..
Sub btnNext_click (Sender As Object, e As EventArgs)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Patrice
MyTest est déclaré en tant qu'objet. MyTest.ID est donc à "liaison tardive" (théoriquement MyTest pourrait être n'importe quel objet qui au moment de la compilation pourra ou non exposer cette propriété).
Je suggère : - déclarer MyTest comme de type "Button" (et donc le compilo est sûr que Test.ID est valide) - je préfère DirectCast plutôt que CType (à priori CType fonctionne pour tout type dérivé, DirectCast ne fonctionnera que si sender est du "button" et n'acceptera même pas les types dérivés), vérifie peut-être le détail de ce que je dis, je suis plus ou moins sûr de ce point...
Patrice
--
"fabrice" a écrit dans le message de news:
Bonjour à tous
Encore un petit souci a soumettre ....
J'applique l'Option Strict On. J'ai un simple bouton auquel est associé une procédure. Je veux occasionner un traitement en fonction du ID du bouton ou encore appliquer un style.
Ce qui fonctionne bien en Option Strict Off plante en mode ON avec
l'erreur
BC30574: Option Strict On rejette toute liaison tardive.
Je sais qu'il s'agit d'un problème de conversion et de déclaration mais
j'ai
beau essayer 30 méthides j'ai toujours l'erreur. Voici un bout d'exemple..
Sub btnNext_click (Sender As Object, e As EventArgs)
MyTest est déclaré en tant qu'objet. MyTest.ID est donc à "liaison tardive"
(théoriquement MyTest pourrait être n'importe quel objet qui au moment de la
compilation pourra ou non exposer cette propriété).
Je suggère :
- déclarer MyTest comme de type "Button" (et donc le compilo est sûr que
Test.ID est valide)
- je préfère DirectCast plutôt que CType (à priori CType fonctionne pour
tout type dérivé, DirectCast ne fonctionnera que si sender est du "button"
et n'acceptera même pas les types dérivés), vérifie peut-être le détail de
ce que je dis, je suis plus ou moins sûr de ce point...
Patrice
--
"fabrice" <emouchet@test.com> a écrit dans le message de
news:uiKcR7BbFHA.2128@TK2MSFTNGP15.phx.gbl...
Bonjour à tous
Encore un petit souci a soumettre ....
J'applique l'Option Strict On.
J'ai un simple bouton auquel est associé une procédure.
Je veux occasionner un traitement en fonction du ID du bouton ou encore
appliquer un style.
Ce qui fonctionne bien en Option Strict Off plante en mode ON avec
l'erreur
BC30574: Option Strict On rejette toute liaison tardive.
Je sais qu'il s'agit d'un problème de conversion et de déclaration mais
j'ai
beau essayer 30 méthides j'ai toujours l'erreur.
Voici un bout d'exemple..
Sub btnNext_click (Sender As Object, e As EventArgs)
MyTest est déclaré en tant qu'objet. MyTest.ID est donc à "liaison tardive" (théoriquement MyTest pourrait être n'importe quel objet qui au moment de la compilation pourra ou non exposer cette propriété).
Je suggère : - déclarer MyTest comme de type "Button" (et donc le compilo est sûr que Test.ID est valide) - je préfère DirectCast plutôt que CType (à priori CType fonctionne pour tout type dérivé, DirectCast ne fonctionnera que si sender est du "button" et n'acceptera même pas les types dérivés), vérifie peut-être le détail de ce que je dis, je suis plus ou moins sûr de ce point...
Patrice
--
"fabrice" a écrit dans le message de news:
Bonjour à tous
Encore un petit souci a soumettre ....
J'applique l'Option Strict On. J'ai un simple bouton auquel est associé une procédure. Je veux occasionner un traitement en fonction du ID du bouton ou encore appliquer un style.
Ce qui fonctionne bien en Option Strict Off plante en mode ON avec
l'erreur
BC30574: Option Strict On rejette toute liaison tardive.
Je sais qu'il s'agit d'un problème de conversion et de déclaration mais
j'ai
beau essayer 30 méthides j'ai toujours l'erreur. Voici un bout d'exemple..
Sub btnNext_click (Sender As Object, e As EventArgs)
... Mais je suis de nouveau embeté car je veux désormais récupérer l'ID du panel (ID=PANEL1)dans lequel se trouve le control button. Finalement l'ID du control Parent Toujours sans "Option explicit On" je fais..
response.write(sender.Parent.id) et ca fonctionne.
mais avec option strict on je fais.
DirectCast(sender.Parent,Panel).Id et la paf plus rien.
encore merci
Hello patrice.
merci,
effectivement j'ai appliqué la solution suivante
DirectCast(sender,Control).Id
et cela fonctionne.
... Mais je suis de nouveau embeté car je veux désormais récupérer l'ID du
panel (ID=PANEL1)dans lequel se trouve le control button. Finalement l'ID du
control Parent
Toujours sans "Option explicit On" je fais..
response.write(sender.Parent.id) et ca fonctionne.
mais avec option strict on je fais.
DirectCast(sender.Parent,Panel).Id et la paf plus rien.
... Mais je suis de nouveau embeté car je veux désormais récupérer l'ID du panel (ID=PANEL1)dans lequel se trouve le control button. Finalement l'ID du control Parent Toujours sans "Option explicit On" je fais..
response.write(sender.Parent.id) et ca fonctionne.
mais avec option strict on je fais.
DirectCast(sender.Parent,Panel).Id et la paf plus rien.
encore merci
Patrice
"Plus rien" c'est-à-dire ?
Si c'est un problème de "casting", j'approche généralement le problème en affichant MonObjet.GetType.ToString ce qui me permet déjà de vérifier que je récupère bien un objet du type que j'attends...
-- Patrice
"fabrice" a écrit dans le message de news:
Hello patrice.
merci,
effectivement j'ai appliqué la solution suivante
DirectCast(sender,Control).Id
et cela fonctionne.
... Mais je suis de nouveau embeté car je veux désormais récupérer l'ID du panel (ID=PANEL1)dans lequel se trouve le control button. Finalement l'ID
du
control Parent Toujours sans "Option explicit On" je fais..
response.write(sender.Parent.id) et ca fonctionne.
mais avec option strict on je fais.
DirectCast(sender.Parent,Panel).Id et la paf plus rien.
encore merci
"Plus rien" c'est-à-dire ?
Si c'est un problème de "casting", j'approche généralement le problème en
affichant MonObjet.GetType.ToString ce qui me permet déjà de vérifier que je
récupère bien un objet du type que j'attends...
--
Patrice
"fabrice" <emouchet@test.com> a écrit dans le message de
news:uEqTjnCbFHA.2980@TK2MSFTNGP10.phx.gbl...
Hello patrice.
merci,
effectivement j'ai appliqué la solution suivante
DirectCast(sender,Control).Id
et cela fonctionne.
... Mais je suis de nouveau embeté car je veux désormais récupérer l'ID du
panel (ID=PANEL1)dans lequel se trouve le control button. Finalement l'ID
du
control Parent
Toujours sans "Option explicit On" je fais..
response.write(sender.Parent.id) et ca fonctionne.
mais avec option strict on je fais.
DirectCast(sender.Parent,Panel).Id et la paf plus rien.
Si c'est un problème de "casting", j'approche généralement le problème en affichant MonObjet.GetType.ToString ce qui me permet déjà de vérifier que je récupère bien un objet du type que j'attends...
-- Patrice
"fabrice" a écrit dans le message de news:
Hello patrice.
merci,
effectivement j'ai appliqué la solution suivante
DirectCast(sender,Control).Id
et cela fonctionne.
... Mais je suis de nouveau embeté car je veux désormais récupérer l'ID du panel (ID=PANEL1)dans lequel se trouve le control button. Finalement l'ID
du
control Parent Toujours sans "Option explicit On" je fais..
response.write(sender.Parent.id) et ca fonctionne.
mais avec option strict on je fais.
DirectCast(sender.Parent,Panel).Id et la paf plus rien.
encore merci
fabrice
Désolé , je n'ai pas été très clair dans mon texte.
Je voudrais travailler sur la base du Control Parent à savoir un Control Panel. Pour obtenir l'ID du panej sans Option Strict je faisais : sender.Parent.id
Mais avec l'option stric je suis obligé de caster.
je fais donc DirectCast(sender.Parent,Web.UI.WebControls.Panel).Id ---> désigner le Control Panel
et la je me retrouve avec l'erreur " BC30574: Option Strict On rejette toute liaison tardive."
Alors comment caster le control parent de mon Boutin qui se trouve à l'intérieur d'un Control Panel.
merci fab
voici mon code. Ici je travaille avec le ID du Bouton. Ca fonctionne parfaitement.
Sub btnNext_click (Sender As Object, e As EventArgs)
Select Case DirectCast(sender,System.Web.UI.WebControls.Button).Id
Case "btnPage1" Me.page1.visible = False Me.page2.visible = True
Case "btnPage2" ....
End Select
Désolé , je n'ai pas été très clair dans mon texte.
Je voudrais travailler sur la base du Control Parent à savoir un Control
Panel.
Pour obtenir l'ID du panej sans Option Strict je faisais : sender.Parent.id
Mais avec l'option stric je suis obligé de caster.
je fais donc DirectCast(sender.Parent,Web.UI.WebControls.Panel).Id --->
désigner le Control Panel
et la je me retrouve avec l'erreur " BC30574: Option Strict On rejette toute
liaison tardive."
Alors comment caster le control parent de mon Boutin qui se trouve à
l'intérieur d'un Control Panel.
merci
fab
voici mon code. Ici je travaille avec le ID du Bouton.
Ca fonctionne parfaitement.
Sub btnNext_click (Sender As Object, e As EventArgs)
Select Case DirectCast(sender,System.Web.UI.WebControls.Button).Id
Case "btnPage1"
Me.page1.visible = False
Me.page2.visible = True
Désolé , je n'ai pas été très clair dans mon texte.
Je voudrais travailler sur la base du Control Parent à savoir un Control Panel. Pour obtenir l'ID du panej sans Option Strict je faisais : sender.Parent.id
Mais avec l'option stric je suis obligé de caster.
je fais donc DirectCast(sender.Parent,Web.UI.WebControls.Panel).Id ---> désigner le Control Panel
et la je me retrouve avec l'erreur " BC30574: Option Strict On rejette toute liaison tardive."
Alors comment caster le control parent de mon Boutin qui se trouve à l'intérieur d'un Control Panel.
merci fab
voici mon code. Ici je travaille avec le ID du Bouton. Ca fonctionne parfaitement.
Sub btnNext_click (Sender As Object, e As EventArgs)
Select Case DirectCast(sender,System.Web.UI.WebControls.Button).Id
Case "btnPage1" Me.page1.visible = False Me.page2.visible = True
Case "btnPage2" ....
End Select
Patrice
Ok, sender est un objet donc sender.Parent est en "liaison tardive".
Si tu utilises plusieurs fois utilise une variable comme tu le faisais avant (mais déclarée avec un type autre que "objet"). Sinon il faut "caster" sender pour accéder au parent puis "caster" ce parent pour accéder à l'id :
CType(CType(sender,Control).Parent,Control).ID
--
"fabrice" a écrit dans le message de news:
Désolé , je n'ai pas été très clair dans mon texte.
Je voudrais travailler sur la base du Control Parent à savoir un Control Panel. Pour obtenir l'ID du panej sans Option Strict je faisais :
sender.Parent.id
Mais avec l'option stric je suis obligé de caster.
je fais donc DirectCast(sender.Parent,Web.UI.WebControls.Panel).Id ---> désigner le Control Panel
et la je me retrouve avec l'erreur " BC30574: Option Strict On rejette
toute
liaison tardive."
Alors comment caster le control parent de mon Boutin qui se trouve à l'intérieur d'un Control Panel.
merci fab
voici mon code. Ici je travaille avec le ID du Bouton. Ca fonctionne parfaitement.
Sub btnNext_click (Sender As Object, e As EventArgs)
Select Case DirectCast(sender,System.Web.UI.WebControls.Button).Id
Case "btnPage1" Me.page1.visible = False Me.page2.visible = True
Case "btnPage2" ....
End Select
Ok, sender est un objet donc sender.Parent est en "liaison tardive".
Si tu utilises plusieurs fois utilise une variable comme tu le faisais avant
(mais déclarée avec un type autre que "objet"). Sinon il faut "caster"
sender pour accéder au parent puis "caster" ce parent pour accéder à l'id :
CType(CType(sender,Control).Parent,Control).ID
--
"fabrice" <emouchet@test.com> a écrit dans le message de
news:ud9TfjDbFHA.1148@tk2msftngp13.phx.gbl...
Désolé , je n'ai pas été très clair dans mon texte.
Je voudrais travailler sur la base du Control Parent à savoir un Control
Panel.
Pour obtenir l'ID du panej sans Option Strict je faisais :
sender.Parent.id
Mais avec l'option stric je suis obligé de caster.
je fais donc DirectCast(sender.Parent,Web.UI.WebControls.Panel).Id --->
désigner le Control Panel
et la je me retrouve avec l'erreur " BC30574: Option Strict On rejette
toute
liaison tardive."
Alors comment caster le control parent de mon Boutin qui se trouve à
l'intérieur d'un Control Panel.
merci
fab
voici mon code. Ici je travaille avec le ID du Bouton.
Ca fonctionne parfaitement.
Sub btnNext_click (Sender As Object, e As EventArgs)
Select Case DirectCast(sender,System.Web.UI.WebControls.Button).Id
Case "btnPage1"
Me.page1.visible = False
Me.page2.visible = True
Ok, sender est un objet donc sender.Parent est en "liaison tardive".
Si tu utilises plusieurs fois utilise une variable comme tu le faisais avant (mais déclarée avec un type autre que "objet"). Sinon il faut "caster" sender pour accéder au parent puis "caster" ce parent pour accéder à l'id :
CType(CType(sender,Control).Parent,Control).ID
--
"fabrice" a écrit dans le message de news:
Désolé , je n'ai pas été très clair dans mon texte.
Je voudrais travailler sur la base du Control Parent à savoir un Control Panel. Pour obtenir l'ID du panej sans Option Strict je faisais :
sender.Parent.id
Mais avec l'option stric je suis obligé de caster.
je fais donc DirectCast(sender.Parent,Web.UI.WebControls.Panel).Id ---> désigner le Control Panel
et la je me retrouve avec l'erreur " BC30574: Option Strict On rejette
toute
liaison tardive."
Alors comment caster le control parent de mon Boutin qui se trouve à l'intérieur d'un Control Panel.
merci fab
voici mon code. Ici je travaille avec le ID du Bouton. Ca fonctionne parfaitement.
Sub btnNext_click (Sender As Object, e As EventArgs)
Select Case DirectCast(sender,System.Web.UI.WebControls.Button).Id
Case "btnPage1" Me.page1.visible = False Me.page2.visible = True
Case "btnPage2" ....
End Select
Fabrice
Bonsoir Patrice
Génial ! ca marche du tonnerre. Merci d'avoir pris le temps de me répondre. Passe une bonne soirée.
fabrice
"Patrice" a écrit dans le message de news:
Ok, sender est un objet donc sender.Parent est en "liaison tardive".
Si tu utilises plusieurs fois utilise une variable comme tu le faisais avant (mais déclarée avec un type autre que "objet"). Sinon il faut "caster" sender pour accéder au parent puis "caster" ce parent pour accéder à l'id :
CType(CType(sender,Control).Parent,Control).ID
--
"fabrice" a écrit dans le message de news:
Désolé , je n'ai pas été très clair dans mon texte.
Je voudrais travailler sur la base du Control Parent à savoir un Control Panel. Pour obtenir l'ID du panej sans Option Strict je faisais :
sender.Parent.id
Mais avec l'option stric je suis obligé de caster.
je fais donc DirectCast(sender.Parent,Web.UI.WebControls.Panel).Id ---> désigner le Control Panel
et la je me retrouve avec l'erreur " BC30574: Option Strict On rejette
toute
liaison tardive."
Alors comment caster le control parent de mon Boutin qui se trouve à l'intérieur d'un Control Panel.
merci fab
voici mon code. Ici je travaille avec le ID du Bouton. Ca fonctionne parfaitement.
Sub btnNext_click (Sender As Object, e As EventArgs)
Select Case DirectCast(sender,System.Web.UI.WebControls.Button).Id
Case "btnPage1" Me.page1.visible = False Me.page2.visible = True
Case "btnPage2" ....
End Select
Bonsoir Patrice
Génial ! ca marche du tonnerre.
Merci d'avoir pris le temps de me répondre.
Passe une bonne soirée.
fabrice
"Patrice" <nobody@nowhere.com> a écrit dans le message de news:
eBP5X3DbFHA.2756@tk2msftngp13.phx.gbl...
Ok, sender est un objet donc sender.Parent est en "liaison tardive".
Si tu utilises plusieurs fois utilise une variable comme tu le faisais
avant
(mais déclarée avec un type autre que "objet"). Sinon il faut "caster"
sender pour accéder au parent puis "caster" ce parent pour accéder à l'id
:
CType(CType(sender,Control).Parent,Control).ID
--
"fabrice" <emouchet@test.com> a écrit dans le message de
news:ud9TfjDbFHA.1148@tk2msftngp13.phx.gbl...
Désolé , je n'ai pas été très clair dans mon texte.
Je voudrais travailler sur la base du Control Parent à savoir un Control
Panel.
Pour obtenir l'ID du panej sans Option Strict je faisais :
sender.Parent.id
Mais avec l'option stric je suis obligé de caster.
je fais donc DirectCast(sender.Parent,Web.UI.WebControls.Panel).Id --->
désigner le Control Panel
et la je me retrouve avec l'erreur " BC30574: Option Strict On rejette
toute
liaison tardive."
Alors comment caster le control parent de mon Boutin qui se trouve à
l'intérieur d'un Control Panel.
merci
fab
voici mon code. Ici je travaille avec le ID du Bouton.
Ca fonctionne parfaitement.
Sub btnNext_click (Sender As Object, e As EventArgs)
Select Case DirectCast(sender,System.Web.UI.WebControls.Button).Id
Case "btnPage1"
Me.page1.visible = False
Me.page2.visible = True
Génial ! ca marche du tonnerre. Merci d'avoir pris le temps de me répondre. Passe une bonne soirée.
fabrice
"Patrice" a écrit dans le message de news:
Ok, sender est un objet donc sender.Parent est en "liaison tardive".
Si tu utilises plusieurs fois utilise une variable comme tu le faisais avant (mais déclarée avec un type autre que "objet"). Sinon il faut "caster" sender pour accéder au parent puis "caster" ce parent pour accéder à l'id :
CType(CType(sender,Control).Parent,Control).ID
--
"fabrice" a écrit dans le message de news:
Désolé , je n'ai pas été très clair dans mon texte.
Je voudrais travailler sur la base du Control Parent à savoir un Control Panel. Pour obtenir l'ID du panej sans Option Strict je faisais :
sender.Parent.id
Mais avec l'option stric je suis obligé de caster.
je fais donc DirectCast(sender.Parent,Web.UI.WebControls.Panel).Id ---> désigner le Control Panel
et la je me retrouve avec l'erreur " BC30574: Option Strict On rejette
toute
liaison tardive."
Alors comment caster le control parent de mon Boutin qui se trouve à l'intérieur d'un Control Panel.
merci fab
voici mon code. Ici je travaille avec le ID du Bouton. Ca fonctionne parfaitement.
Sub btnNext_click (Sender As Object, e As EventArgs)
Select Case DirectCast(sender,System.Web.UI.WebControls.Button).Id
Case "btnPage1" Me.page1.visible = False Me.page2.visible = True