Passage de paramètre Usercontrol

Signaler
Messages postés
51
Date d'inscription
mardi 4 mars 2003
Statut
Membre
Dernière intervention
6 mars 2008
-
Messages postés
51
Date d'inscription
mardi 4 mars 2003
Statut
Membre
Dernière intervention
6 mars 2008
-
Bonjour

J'ai un souci avec un usercontrol quej'integre dans un  page aspx, je voudrais lui passer un paramètre mais dynamique

voila :

<

Listcomments:Listcomments
ID="list"
runat="server"
DataId="402"
/>

Quand je passe mon dataId en chiffre ca marche
Mais moi je voudrai récupéréer le DataID dans mon code behind et faire appel à la méthode getID

<

Listcomments:ListcommentsID="list"runat="server"DataId='<% Response.Write(getid()); %>
'/>

Ca ne marche pas il prend comme valeur  <% Response.Write(getid()); %>
j'ai essayé en passant  <%# getid(); %> marche pas non plus

Comment dois je faire ?
Merci BEaucoup

 

8 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Membre
Dernière intervention
13 octobre 2010
29
Bonjour, c'est tout à fait normal !

Dans ton code .net il faut faire list.DataId = getid();

le <%# getid() %> pourrait marcher si ton controle est dans un context de binding ce qui n'est pas le cas :-/

<hr />Cyril - MVS - MCP
Messages postés
51
Date d'inscription
mardi 4 mars 2003
Statut
Membre
Dernière intervention
6 mars 2008

    Super Merci beaucoup Ca marche nikel :)
Messages postés
51
Date d'inscription
mardi 4 mars 2003
Statut
Membre
Dernière intervention
6 mars 2008

Bon alors en fait non ca ne marche pas

voila ce que j'ai fait:

Dans le aspx je place mon control :
Je passe DataId=""  sinon il pete en disant qu'il manque une variable

<Listcomments:Listcomments
ID="list"
runat="server"
DataId=""/>

et dans le aspx.cs , dans la méthode load je charge :

list.DataId = getID();

Et ping il me met une erreur ---> Pour lui le DataId est nul
Je fais comment please
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Membre
Dernière intervention
13 octobre 2010
29
enleve ton DataId = "" dans le code aspx de la page (ca n'a rien à voir avec l'erreur mais c'est inutile)

Es tu sur que la méthode getID retourne quelque chose ?

<hr />Cyril - MVS - MCP
Messages postés
51
Date d'inscription
mardi 4 mars 2003
Statut
Membre
Dernière intervention
6 mars 2008

oui il retourne quelque chose

D'ailleurs si je passe directement
List.DataId = "418";
Ca marche pas j'ai l'erreur:

Object reference not set to an instance of an object.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error:

Line 22:         else
Line 23:         {
Line 24:             dataid   = Int32.Parse(DataId.ToString());
Line 25:         }
Line 26:

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Membre
Dernière intervention
13 octobre 2010
29
Tu peux me montrer le code de ta propriété DataID de ton UserControl

<hr />Cyril - MVS - MCP
Messages postés
51
Date d'inscription
mardi 4 mars 2003
Statut
Membre
Dernière intervention
6 mars 2008

le voila


 








int
dataid;


protected



void
Page_Load(

object
sender,

EventArgs
e){


dataid =

Int32
.Parse(DataId.ToString());}


override



protected



void
OnInit(

EventArgs
e){


this
.Load +=

new
System.

EventHandler
(

this
.Page_Load);}


protected



string
m_id;


public



string
DataId{


get
{

return
m_id; }


set
{ m_id =

value
; }}
Messages postés
51
Date d'inscription
mardi 4 mars 2003
Statut
Membre
Dernière intervention
6 mars 2008

et bah j'ai posté mon code ? Ca te dit rien alor s?


Sinon je vais foutre mon objet en session et je le recuperais ensuite ( mais j'aime pas cette soluce )