Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

accès à un tag html depuis le code behind

4 réponses
Avatar
Pierre
Bonjour,

Je souhaite modifier la visibilité d'une table à partir du code behind,
donc :
dans la page aspx, le tag table concerné a été affublé de l'attribut "ID"
comme suit :

<body>
<form id="form1" runat="server">
....
<table id="matable">
....
</table>
...
</body>

et dans le code behind .vb, on trouve cela :

[déclaration]
Protected matable As System.Web.UI.HtmlControls.HtmlTable

sub page_load
matable = Page.FindControl("matable")
matable.visible = true
en sub

A l'exécution, matable reste à nothing...
Et je ne comprends pas pourquoi.
J'ai essayé de mettre un runat="serveur" sur le tag matable, mais ça ne
change rien.
Je ne vois pas ce qui cloche.

Merci d'avance.

Cordialement.

Pierre.

4 réponses

Avatar
Christophe Gricourt
il faut en effet que le control "matable" soit en runat=server
d'autre part, essaie de supprimer la ligne "matable = Page.FindControl("matable")"
qui est inutile car le membre protégé "matable" est automatiquement initialisé
Je pense que cette ligne génère une erreur car le cast d'un objet Control
vers un objet HtmlTable n'est pas implicit. D'où le fait que matable reste
à nothing

hth,
- Christophe




Bonjour,

Je souhaite modifier la visibilité d'une table à partir du code
behind,
donc :
dans la page aspx, le tag table concerné a été affublé de l'attribut
"ID"
comme suit :
<body>
<form id="form1" runat="server">
....
<table id="matable">
....
</table>
...
</body>
et dans le code behind .vb, on trouve cela :

[déclaration]
Protected matable As System.Web.UI.HtmlControls.HtmlTable
sub page_load
matable = Page.FindControl("matable")
matable.visible = true
en sub
A l'exécution, matable reste à nothing...
Et je ne comprends pas pourquoi.
J'ai essayé de mettre un runat="serveur" sur le tag matable, mais ça
ne
change rien.
Je ne vois pas ce qui cloche.
Merci d'avance.

Cordialement.

Pierre.



Avatar
Franck Quintana
Bonjour,

...
J'ai essayé de mettre un runat="serveur" sur le tag matable, mais ça ne


...

Essayez runat="server" plutot cela devrait mieux marcher peut etre.

Franck Quintana
Active+ Software
http://www.activeplus.com
Avatar
Julien
2 solutions que j'utilise :

* Utiliser du javascript pour masquer / afficher la table (on peut
éventuellement générer dynamiquement ce script avec
Page.RegisterClientScriptBlock)

* Masquer la table côté serveur en l'englobant dans un asp:label.
Cette solution n'est pas la plus propre mais celle que j'utilise le
plus souvent car très pratique, très efficace et très simple. On
peut ainsi basculer dans le code-behind la valeur de la propriété
Visible du label.

Julien
Avatar
Pierre
C'est tout bon : il faut le runat server sur le tag, plus l'id
et ensuite ne pas chercher le control avec findcontrol.

Merci !

Pierre.


"Christophe Gricourt" a écrit dans le message de
news:

il faut en effet que le control "matable" soit en runat=server
d'autre part, essaie de supprimer la ligne "matable =
Page.FindControl("matable")" qui est inutile car le membre protégé
"matable" est automatiquement initialisé
Je pense que cette ligne génère une erreur car le cast d'un objet Control
vers un objet HtmlTable n'est pas implicit. D'où le fait que matable reste
à nothing

hth,
- Christophe




Bonjour,

Je souhaite modifier la visibilité d'une table à partir du code
behind,
donc :
dans la page aspx, le tag table concerné a été affublé de l'attribut
"ID"
comme suit :
<body>
<form id="form1" runat="server">
....
<table id="matable">
....
</table>
...
</body>
et dans le code behind .vb, on trouve cela :

[déclaration]
Protected matable As System.Web.UI.HtmlControls.HtmlTable
sub page_load
matable = Page.FindControl("matable")
matable.visible = true
en sub
A l'exécution, matable reste à nothing...
Et je ne comprends pas pourquoi.
J'ai essayé de mettre un runat="serveur" sur le tag matable, mais ça
ne
change rien.
Je ne vois pas ce qui cloche.
Merci d'avance.

Cordialement.

Pierre.