Bonjour,
soit la variable MaVariable de type string
Si un ControlLabel s'appelle 'MonLabel', je peux lui affecter du texte en faisant :
MonLabel.Text = "BlaBlaBla" ;
comment faire maintenant si 'MonLabel' est contenu dans MaVariable ?
Merci
Bonjour,
soit la variable MaVariable de type string
Si un ControlLabel s'appelle 'MonLabel', je peux lui affecter du texte en faisant :
MonLabel.Text = "BlaBlaBla" ;
comment faire maintenant si 'MonLabel' est contenu dans MaVariable ?
Merci
Merci, cela semble fonctionner mais j'ai malgré tout une interrogation.
J'utilise ce code pour retrouver un control TextBox dans un Gridview
ensuite, j'utilise cette notation
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 int index = Convert.ToInt32(e.CommandArgument); GridViewRow row = GridView1.Rows[index]; string uniqueID = row.Cells[1].Controls[1].UniqueID;
le hic, c'est que si j'avais ABC dans la zone d'entrée et que j'y ai mis XYZ, textBox.Text vaut encore 'ABC' et non 'XYZ'.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 TextBox textBox = (TextBox)(Page.FindControl(uniqueID));
Quelle est mon erreur ?
Merci
Salut,
dans qu'elle evennement tu fait appel a ce code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part TextBox textBox = (TextBox)(Page.FindControl(uniqueID));
A+
J'ai créé la méthode suivante dans le code behind :
RowCommand est définit dans les attributs du GridView : OnRowCommand="RowCommand"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 protected void RowCommand(object sender, GridViewCommandEventArgs e) { int index = Convert.ToInt32(e.CommandArgument); GridViewRow row = GridView1.Rows[index]; string uniqueID = row.Cells[1].Controls[1].UniqueID; TextBox textBox = (TextBox)(Page.FindControl(uniqueID)); }
le GridView dispose d'une colonne spécifique pour provoquer l'appel à la méthode :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <asp:ButtonField CommandName="Testing" ButtonType="Image" ImageUrl="~/App_Themes/Default/Images/test.gif" Text="BtTest" />
A+
Salut,
tu peut publier le code asp de la GridView.
A+
J'ai trouvé une piste
le gridview est défini ainsi :
Je n'ai qu'une partie car il y a les éléments principaux ici.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnLoad="GridView1_DataBinding" OnRowCommand="RowCommand"> <Columns> <asp:TemplateField HeaderText="Libelle"> <ItemTemplate> <asp:HyperLink ID="Link" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"libelleArt") %>' NavigateUrl='<%# "~/Articles/DetailArticle.aspx?ID=" + DataBinder.Eval(Container.DataItem,"ArtId") %>' /> </ItemTemplate> <ItemStyle Width="300px" /> </asp:TemplateField> <asp:TemplateField HeaderText="Quantite"> <ItemTemplate> <asp:TextBox ID="QuantEcran" runat="server" CssClass="FormFieldsRight" Width="70px" Wrap="False" AutoPostBack="false" /> <asp:HiddenField ID="Quant" runat="server" Value='<%# DataBinder.Eval(Container.DataItem,"getArtQuantite") %>' /> <asp:HiddenField ID="SeqArt" runat="server" Value='<%# DataBinder.Eval(Container.DataItem,"getArtId") %>' /> </ItemTemplate> <ItemStyle Width="80px" /> </asp:TemplateField>
asp:TextBox ID="QuantEcran" est alimenté par le contenu de <asp:HiddenField ID="Quant" runat="server"
Value='<%# DataBinder.Eval(Container.DataItem,"getArtQuantite") %>' /> dans une méthode appelée "GridView1_DataBinding" qu'on retrouve dans le onLoad du GridView et c'est de là que vient le soucis car je repasse dans "GridView1_DataBinding" dès que je clique sur le bouton dont je parle plus haut.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 protected void GridView1_DataBinding(object sender, EventArgs e) { if (GridView1.Rows.Count > 0) { foreach (GridViewRow row in GridView1.Rows) { int Quant = Convert.ToInt32(((HiddenField)(row.Cells[1].Controls[3])).Value); ((TextBox)(row.Cells[1].Controls[1])).Text = string.Format("{0}", Quant); } } }
Edit :
J'ai placé ispostback dans ma méthode GridView1_DataBinding
et cela a résolu mon problème MAIS j'ai le sentiment de ne pas avoir développé tout cela correctement... donc tout commentaire est le bienvenu.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 protected void GridView1_DataBinding(object sender, EventArgs e) { if (GridView1.Rows.Count > 0 & IsPostBack == false) { foreach (GridViewRow row in GridView1.Rows) { int Quant = Convert.ToInt32(((HiddenField)(row.Cells[1].Controls[3])).Value); ((TextBox)(row.Cells[1].Controls[1])).Text = string.Format("{0}", Quant); } } }
beh, ça explique tout,
essay de mettre la valeur de control HiddenField directement dans le textBox par la même maniere :
et ellimine l'appel de la methode GridView1_DataBinding.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <asp:TextBox ID="QuantEcran" runat="server" CssClass="FormFieldsRight" Width="70px" Wrap="False" Text='<%<%# DataBinder.Eval(...)%>' AutoPostBack="false" />
A+
Merci beaucoup AJemni.
Je peux effectivement retirer l'appel à GridView1_DataBinding
Pfff j'en ai bavé sur cette bêtise![]()
Partager