Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : ASP.NET et C# - Paramétrage contrôl Label dans un ItemTemplate de DataList [ Divers / Autre ] (zouzou0607)

lundi 28 janvier 2008 à 10:43:40 | ASP.NET et C# - Paramétrage contrôl Label dans un ItemTemplate de DataList

zouzou0607

Bonjour,

je cherche à accéder en code behind à un controle Label dans l'ItemTemplate d'un DataList afin d'y afficher un texte dynamiquement s'il y a lieu.

Voici mon code :
<body>
    <form id="form1" runat="server">
    <div>
        <asp:DataList ID="DataList1" runat="server">
            <ItemTemplate>
                <asp:Label ID="Label1" runat="server" Text="Test"></asp:Label>
            </ItemTemplate>
        </asp:DataList></div>
    </form>
</body>

et mon code behind :

Label lb = newLabel();

lb = (

Label)FindControl("Label1");

lb.Text =

"coucou !";

la génération passe mais lorsque j'affiche ma page dans mon navigateur j'obtiens :
La référence d'objet n'est pas définie à une instance d'un objet

Quelqu'un aurait-il une idée ?

Zouzou

lundi 28 janvier 2008 à 21:41:51 | Re : ASP.NET et C# - Paramétrage contrôl Label dans un ItemTemplate de DataList

nhervagault

Administrateur CodeS-SourceS
Salut

Il faut que tu modifie sur l'événement

 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
et la row courante dans le e.Row

Aprés a toi de t'amuser a modifier les cellules.

Voila

mardi 29 janvier 2008 à 09:46:28 | Re : ASP.NET et C# - Paramétrage contrôl Label dans un ItemTemplate de DataList

zouzou0607

D'accord mais je n'ai pas de GridView dans ma page, j'ai un DataList. Donc j'ai essayé comme çà en behind :

protectedvoid DataList1_ItemDataBound(object sender, DataListItemEventArgs e)

{

Label lb = newLabel();

lb = (

Label)FindControl("Label1");

lb.Text =

"coucou !";

}

et voila ma page :

<
formid="form1"runat="server">

<div>

<asp:DataListID="DataList1"runat="server"OnItemDataBound="DataList1_ItemDataBound">

<ItemTemplate>

<asp:LabelID="Label1"runat="server"Text="test"></asp:Label>

</ItemTemplate>

</asp:DataList></div>

</form>Soit dit-en passant je suis novice en ASP et encore plus en C#.

Merci d'avance !!

Zouzou

mardi 29 janvier 2008 à 19:17:11 | Re : ASP.NET et C# - Paramétrage contrôl Label dans un ItemTemplate de DataList

nhervagault

Administrateur CodeS-SourceS
Voila de quoi t'aider

    protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
    {
        Label lb = new Label();
        lb.Text = (e.Item.DataItem as DataRowView)["ProductName"].ToString();      
        e.Item.Controls.Add(lb);
    }

Si tu as une colonne dans ta datasource.

Sinon tu peux parcourir la collection des controles.



mardi 3 juin 2008 à 12:01:21 | Re : ASP.NET et C# - Paramétrage contrôl Label dans un ItemTemplate de DataList

pifou25

Bonjour,

j'ai trouvé ce post très intéressant ça m'a bien fait avancer... mais pas tout à fait! j'ai voulu utiliser un hyperlink à la place du label ci dessus et j'ai l'erreur sur la dernière ligne: e.Item.Controls.Add(hlp);

L'exception System.ArgumentException n'a pas été gérée par le code utilisateur
  Message="'TableRow' ne peut pas avoir d'enfant du type 'HyperLink'."
  Source="System.Web"


Comment puis-je ajouter un hyperlink dans ma cellule alors?

mardi 3 juin 2008 à 12:56:40 | Re : ASP.NET et C# - Paramétrage contrôl Label dans un ItemTemplate de DataList

ghano81

pifou25 si tu utilise une table    TAble ou une table html
voila comment ajouter un hyperlink  dans ta cellule

Table

Table1 = newTable();

TableRow

tempRow = newTableRow();


HyperLink
lien = newHyperLink();

TableCell

tempCellc = newTableCell();

tempCellc.Controls.Add(lien);

tempRow.Cells.Add(tempCellc);

Table1.Rows.Add(tempRow);

pour chercher ton controle


foreach

(TableRow row in Table1.Rows)

{

HyperLinkchec = (HyperLink)row.FindControl(ID);

if (chec.Checked && chec != null)

{

string gh = row.Cells[0].Text;

Response.Write(gh);

}


mardi 3 juin 2008 à 14:03:35 | Re : ASP.NET et C# - Paramétrage contrôl Label dans un ItemTemplate de DataList

nhervagault

Administrateur CodeS-SourceS
Salut,

Remettons un peu d'ordre dans le post pour ne pas induire en erreur et melanger les réponses.

ghano81 : Ta méthode est une méthode qui est a éviter au maximum en dotnet.
Tu ne separes pas la présentation des traitements.
Tu perds de nombreux avantages du datagrid (modele objet et ...)
Tu perds la personnalisation plus fine permise par ce composant, malgré qu'il est préférable d'utiliser le listview du framework 3.5 (CSS friendly et customisation encore plus fine)

Le datagrid te generas un tableau html au final, et tu n'a en général pas besoin de modifier le code source pour modifier l'aparence.

pifou25 : TableRow ne peut pas contenir des hyperlink c'est un peu normal.
en HTML il tr contient des cellule "<td>" et non des  link "<a>"

Il faut que tu descendes au niveau du TableCell pour inserer ton controle hyperlink.

Sinon pourquoi ne pas utiliser un itemtemplate pour faire ton lien,
il faut au maximum ne pas inserer de controle pendant la phase de rendu.

Question de maintenance.

Bon coding a vous tous.





mardi 3 juin 2008 à 14:27:53 | Re : ASP.NET et C# - Paramétrage contrôl Label dans un ItemTemplate de DataList

ghano81

 nhervagault : oui t'as raison c'est pas evident d'utiliser une table html et gerer bien les controles enfants surtout lorsque sont crées dynamiquement (enfin c'est à eviter )
mais moi jé repondu selon  son besoin
 
à mon avis utiliser un repeater mieu qu'un datagrid ou gridview 

bonne chance et goodluck
 


mardi 3 juin 2008 à 14:56:03 | Re : ASP.NET et C# - Paramétrage contrôl Label dans un ItemTemplate de DataList

nhervagault

Administrateur CodeS-SourceS
Ok,
Mais je pense que la raison est celle indiqué dans mon post que tu  n'avais pas du voir gestion des tablerow et tablecell.

Il fallait recadrer un peu le post pour ne pas mélanger les 2 techniques de creation de tableau.

Je serais plus sur le listview que sur le repeater, il est possible de faire
les 3 types de controle (repeater, datalist et gridview ) avec ce controle.

Bon coding


mercredi 4 juin 2008 à 16:31:09 | Re : ASP.NET et C# - Paramétrage contrôl Label dans un ItemTemplate de DataList

pifou25

Merci pour vos réponses et explications

nhervagault > je n'ai pas  le choix je pense, d'utiliser cette méthode: actuellement il y a bien un itemTemplate avec un type de lien + label, mais dans mon cas je me retrouve avec une colonne qui contient un lien différent selon le type de la ligne. Quoi qu'il en soit, chaque ligne contient un lien et je pourrais insérer un lien "par défaut" du coté aspx puis définir dans le code-behind la propriété "navigateURL" du lien vers l'un ou l'autre cible. C'est mieux ainsi?


1 2

Cette discussion est classé dans : label, code, runat, datalist, itemtemplate


Répondre à ce message

Sujets en rapport avec ce message

Recuperation de valeur dans une datalist [ par drakula ] Salut la compagnie ! Voila j'ai un leger soucis, je voudrais recuperer la valeur d'une checkbox html qui est contenue dans une datalist dont voici le DataList + code [ par alexyDeBissy ] j'arrive à réaliser une dataList qui se rempli avec une base de données (jusqu'ici pas de problème) mais je voudrais que chacun des éléments de ce dat Pb de mise à jour d'un label avec texte saisi et compteur [ par Suffren ] Bonjour,Je souhaite,grâce à un compteur, faire une recherche type Index de Visual Studio.Net et pour cela, j'ai une textbox dans le quel je saisis les Calcul de l'âge dans un datalist [ par Alain37Mtl ] Mon application web affiche la liste des membres et je voudrais afficher l'âge de chacun au lieu de leur date de naissance. Protected <FONT color=#000 datalist code behind [ par coulis ] Bonjour,auriez vous un exemple pour contrôler un datalist à partir du code behind.exemple :je voudrais eviter ce code dans la page html pour un contro Mettre le Footer d'un DataList avec un colspan [ par Coolpix08 ] Ben comme le sujet l'indique...j'ai créé une datalist avec un header et un footer Le problème est que je n'ai qu'un lien a mettre dans le footer et j' Recuperation de valeurs en Code Behind a mettre dans le datalist [ par wally88 ] Bonjour, Voila je recup des infos d'un base de données dans le code behind dans un ArrayList.Les infos que je met dans l'ArrayList, j'aimerais les aff dataList imbriqués [ par obelix789 ] Bonjour à tous. Un petit problème m'amène à vous consulter. J'utilise 2 datalist imbriqués avec une condition sur la valeur d'un champ pour le deuxièm retourner une valeur a un label asp [ par BrokenArrow29 ] Bonjour,J'ai un message d'erreur que je ne comprend pas"Collection est en lecture seule"dans mon code html je veux atttribué une valeur string a un la code behind + html [ par emmanuel9 ] Bonjour à tous, J'ai une ArrayList de chaine et je voudrais afficher dynamiquement sur ma page en asp.net ces chaînes sous forme de label donc je fa


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,250 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.