Comment positionner les response.write inclus dans des fonction

Signaler
Messages postés
85
Date d'inscription
jeudi 10 juin 2004
Statut
Membre
Dernière intervention
4 juillet 2006
-
Messages postés
150
Date d'inscription
dimanche 14 mars 2004
Statut
Membre
Dernière intervention
21 décembre 2007
-
bonjour

j'ai créé une fonction en vb.net qui s'execute lorsque je clique sur un bouton .
mon problème est que dans cette fonction , lorsque je realise un response.write, il me l'affiche des le depart du code source et pas a l'endroit ou je le souhaiterai ( mettons milieu de page) comment faire pour que ca ne soit plus le cas ?
dois je passer par des label ?

17 réponses

Messages postés
31
Date d'inscription
lundi 2 décembre 2002
Statut
Membre
Dernière intervention
28 juin 2006

oui le response.write ecris en début de page.
tu positionnes un label, un div (serveur), ou un panel dans ton webform peu importe. ensuite dans ta methode tu entres monlabel.Text = "la valeur à afficher"

a+

MinSou
Messages postés
85
Date d'inscription
jeudi 10 juin 2004
Statut
Membre
Dernière intervention
4 juillet 2006

ben l'idée c'est que je ne peux savoir a l'avance combien de champ j'aurais,
puisque ces response.write se trouve dans un for , et que le nombre d'element est dynamique.
suis je alors obliger de creer par exemple une vingtaine de label dans le doute ?
Messages postés
31
Date d'inscription
lundi 2 décembre 2002
Statut
Membre
Dernière intervention
28 juin 2006

Non, dans ce cas tu crées également tes labels à la volée ex :

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Test.aspx.cs" Inherits="Test" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>

    <form id="form1" runat="server">
   

         //on va placer ici nos controles
   

    </form>

</html>

Dans le code Behind :
protected void Page_Load(object sender, EventArgs e)
    {
        Label l = new Label();
        l.Text = "totto";
        div1.Controls.Add(l);
    }

MinSou
Messages postés
85
Date d'inscription
jeudi 10 juin 2004
Statut
Membre
Dernière intervention
4 juillet 2006

Merci Bien !

j'ai encore neanmoins un probleme :
tu declare 1 label , ok mais je dois passer pour ma part par une declaration "dynamique"
je pensais donc créer un array, donc chaque element contiendrait un label.
mais j'obtiens comme erreur :
Variable 'mavar' hides a variable in an enclosing block.
car mon array ne peut pas contenir d'objet.

comment faire ?
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
Bonjour, tu peux nous montrer ton code ?

Control[] c = new Control[5];

c[0] = monlabel fonctionnera ...

<hr />Cyril - MVS - MCP
Messages postés
85
Date d'inscription
jeudi 10 juin 2004
Statut
Membre
Dernière intervention
4 juillet 2006

 Dim mavar() as String

    For i=0 To ds.tables("datestest").Columns.Count-1
          dim mavar(i) as new Label
          div1.Controls.Add(mavar(i))
    next i
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
Dim mavar() as String et tu veux mettre des controls la dedans ?

dim maVar() as Label

<hr />Cyril - MVS - MCP
Messages postés
31
Date d'inscription
lundi 2 décembre 2002
Statut
Membre
Dernière intervention
28 juin 2006

Bon je vois que Cyril gère la chose, donc rien à ajouter ;-)

MinSou
Messages postés
85
Date d'inscription
jeudi 10 juin 2004
Statut
Membre
Dernière intervention
4 juillet 2006

merci :)
Messages postés
85
Date d'inscription
jeudi 10 juin 2004
Statut
Membre
Dernière intervention
4 juillet 2006

dim maVar() as Label
 For i=0 To ds.tables("datestest").Columns.Count-1
        maVar(i).Text = ds.Tables("datestest").Columns(i).columnName
 Next i

j'obtiens le message Object reference not set to an instance of an object
qu'ai je mal déclarer ?
Messages postés
31
Date d'inscription
lundi 2 décembre 2002
Statut
Membre
Dernière intervention
28 juin 2006

ce serait pas plutot un truc du genre (désolé si la syntaxe est mauvaise je code en C# d'habitude)

dim maVar() as Label
 For i=0 To ds.tables("datestest").Columns.Count-1
        dim l as Label
        l.Text = ds.Tables("datestest").Columns(i).columnName
        maVar(i) = l
 Next i
Messages postés
85
Date d'inscription
jeudi 10 juin 2004
Statut
Membre
Dernière intervention
4 juillet 2006

non c'est le meme probleme.
Object reference not set to an instance of an object.
Messages postés
150
Date d'inscription
dimanche 14 mars 2004
Statut
Membre
Dernière intervention
21 décembre 2007
2
....j'allucine ou c'est juste un problème d'allocation dynamique....parce que la faut pas pousser comme question.....


j'aime pas le VB alors jte file la soluce en C# parce que...apres à toi de traduire ou Cyril va bien passer par la...


Label[] maVar=new Label[ds.tables["datestest"].Columns.Count];


for (int i=0;i<ds.tables["datestest"].Columns.Count;i++)

{

  maVar[i].Text=ds.Tables["datestest"].Columns[i].columnName

}

........


bon allez...obliger d'aller sur le net.........

http://plasserre.developpez.com/v1-6tab.htm


Comment créer un tableau en VB........
Essai avec Redim Preserve maVar(ds.tables["datestest"].Columns.Count)
Messages postés
85
Date d'inscription
jeudi 10 juin 2004
Statut
Membre
Dernière intervention
4 juillet 2006

euh merci ,

non ce nest pas juste un pb d'allocation , le site je connaisais , simplement la mon erreur j'arrive pas a men depetrer.
c tout
merci neanmoins de ton aide.
Messages postés
150
Date d'inscription
dimanche 14 mars 2004
Statut
Membre
Dernière intervention
21 décembre 2007
2
Ben désolé mais l'erreur que tu a decrit c'est bien ca
tu alloue un tableau mais tu lui donne pas la taille alors forcement i va taper à une addresse null.
D'ou ton erreur...
Object reference not set to an instance of an object.

Essais de mettre
Dim maVar(100) as Label
et tu vera que tu n'auras pas derreur si bien sur le nombre de colonne ne depasse pas 100

et si c'est bien ca ben fait un redim dynamique et pis c'est tt
Messages postés
85
Date d'inscription
jeudi 10 juin 2004
Statut
Membre
Dernière intervention
4 juillet 2006

oui l'erreur cest cela, mais helas si ca marchait avec un mavar(100) je ne vous aurais pas embeté...
le redim duynamique ne passe pas.
Pour lui , c'est vriament la ligne
maVar(i).text = ds.tables("datestest").Columns(i).ColumnName

qu'il n'aime pas
meme si je ne passe pas par un label array, c'est la meme chose.
il y a un string a droite, un string a gauche, mais il me met toujours la meme erreur
Messages postés
150
Date d'inscription
dimanche 14 mars 2004
Statut
Membre
Dernière intervention
21 décembre 2007
2
???
Je cale pas la?
Si la partie de gauche est bonne ben....ca peut etre que la partie de droite....
Déja pour etre sur remplace ton dataset par une valeur fixe et fait tourner la boucle pour voir si ya une erreur.
Comme ca tu seras sur que la partie de gauche est bonne

Donc apres ben passe à de l'autre coté....
Déclare une string seul et essait de la remplir avec ton dataset...toujours dans la meme boucle.
Et si ya pas d'erreur comme ca et que tu remet le label et le dataset ensemble..ben revient en expliquant mieux

Mais vérifie bien ton dataset, c'est de l'informatique et c'est super logique alors mais une valeur à la place de ton i directement.
vérifie ta requete, le nombre de columns..etc..

Enfin...fait comme tout programmeur...debug ton prog ligne par ligne et element par element....ca ne peut etre qu'une erreur de ta part.