SuperBouly
Messages postés410Date d'inscriptiondimanche 1 février 2004StatutMembreDernière intervention 8 mai 2010
-
5 mai 2007 à 12:23
jamalmellal
Messages postés5Date d'inscriptionlundi 27 juillet 2009StatutMembreDernière intervention16 avril 2013
-
29 mars 2010 à 11:04
bonjour,
Je travaille sur VS2005 et asp.net 2.0 (vb)
je veux attribuer à chaque controle d'un formview un petit javascript "onfocus"
Mais ma sub, en asp.net 1.1 sans formview, commencait par qqchose comme
Sub maSubFocus(ByVal Conteneur As Control)
Dim conten As Control = Page.FindControl(Conteneur.ClientID)
Dim Contr As Control
For Each Contr In conten.Controls ...etc
où le conteneur était le formulaire (Form1) de ma page
Maintenant, je n'arrive pas à lister toutes les textbox du formView (ici en mode insert).
Quand je mets :
for each Contr In MonFormView.Controls ... je n'obtient que la childTable
Pourtant, l'instruction
Dim maTextBox as textBox = MonFormView.FindControl("maTextBox ") est bien licite.
Que faire ?
merci de vos lumières
Gilles
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 5 mai 2007 à 17:32
la méthode FindControl est recursive, elle va chercher dans les enfants d'un controle et les enfants des enfants, etc...
dans ton cas c'est normal que tu as bien un Table car c'est le conteneur d'un formview il faut ensuite parcourir sa collection de controles et attrapper seulement ceux qui t'interesse.
Mais tu peux peut etre faire ce que tu veux en javascript, ce sera plus propre, plus rapide et plus propre (oui je begaye)
en gros
var fnc = function(tableID){
var table = document.getElementById(tableID);
var elements = table.getElementsByTableName('input');
for (int i = 0; i < table.length; i++){
if (elements[i].type == 'text'){
elements[i].onmachin = textboxFormView_machin;
}
}
}
var textboxFormView_machin = function(){
this.value; //obtient la value du textbox
}
il te reste plus qu'a faire appelle à la fonction fnc avec le clientID du tableau ...
<hr />Cyril - MSP - MCTS ASP.net & SQL
Anksunamon
Messages postés12Date d'inscriptionjeudi 23 janvier 2003StatutMembreDernière intervention17 juin 2007 17 juin 2007 à 19:38
Bonjour,
J'ai le même problème, je cherche à modifier tous les labels de mon formview en mode edit au runtime, mais apparement je n'arrive pas à mettre mon code au bon endroit et/ou je ne trouve pas les controls...
Donc où dois-je placer ce code (Page_Load, monFormView_ItemCreated, monFormViewItemDatabound ?) et que dois-je modifier pour que ça marche?
if (monFormView.CurrentMode ==
FormViewMode.Edit)
{
ranouf
Messages postés237Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention31 août 2009 15 mai 2008 à 20:05
Apres parcours de l objet formview voila ce que g pu trouver :
Dim cc As ControlCollection = FormView1.Controls.Item(0).Controls.Item(1).Controls.Item(0).Controls
For Each ctrl As Control In cc
If TypeName(ctrl) = "TextBox" Then
Dim txt As TextBox = CType(ctrl, TextBox)
If txt.TextMode = TextBoxMode.MultiLine Then
txt.Attributes.Add("onfocus", "javascript:toggleEditor('" + txt.ClientID + "');")
txt.Attributes.Add("onlostfocus", "javascript:toggleEditor('" + txt.ClientID + "');")
End If
End If
Next
Les attributs sont bien ajoutes cependant cela n est pas pris en compte dans le rendu HTML, je ne comprens pas encore pkoi ....