Fonction avec nom de page en paramètre

cs_Suffren Messages postés 92 Date d'inscription vendredi 4 juillet 2003 Statut Membre Dernière intervention 9 août 2004 - 24 mai 2004 à 11:07
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 - 27 mai 2004 à 19:30
Bonjour,
Je souhaite réaliser une fonction ayant le nom d'une page en paramètre qui renvoie par exemple un simple label (pour commencer) après avoir cliqué sur un bouton.
Tout çà en AsP.Net et VB.
Je ne vois pas comment faire, quelqu'un aurait-il une idée ?
Cordialement,
Suffren

9 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
24 mai 2004 à 18:57
Je ne comprend pas la question

tu veux connaitre le nom de la page sur laquelle tu te trouves ?
ou autre chose du genre

public function ReturnTextebox(LaPage as string) as Label

dim lbl as new Label
lbl.text = LaPage.string

return lbl

end function

?????

@+

Cyril
0
cs_Suffren Messages postés 92 Date d'inscription vendredi 4 juillet 2003 Statut Membre Dernière intervention 9 août 2004
25 mai 2004 à 09:00
En fait, mon projet consiste à faire une fonction qui à partir d'un nom de client, récupère son ID et ouvre un formulaire Web type avec toutes les infos sur le client genre :
On a un Nom : recherche dans base de données son ID puis on lance la fonction formulaire F_nom pour avoir les infos.

Mais pour commencer, je voulais juste envoyer un label après un clic sur bouton (pas forcément avec un textbox).
J'espère avoir été un peu plus claire.

Suffren
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
25 mai 2004 à 13:10
je comprend pas la deuxieme partie, pourkoi tu veux renvoyer un label ?

ce que tu veux c'est par exemple que ton utilisateur ai une fenetre d'authentification et qu'ensuite il soit redirigé ?

rien de compliqué dans ce cas.
tu fais un bete formulaire avec un textbox qui est le numero de client ensuite sur le click du bouton, tu verifies que le numero du client soit dans la bdd tu fais une redirection sur une autre page par exemple infoclient.aspx?id=numeroclient
ensuite dans infoclient.aspx tu recuperes le numeroclient, et tu fait des requetes sur ta bdd en fonction de celui ci.

Je vois pas vraiment ou est le pb

dsl

Cyril
0
cs_Suffren Messages postés 92 Date d'inscription vendredi 4 juillet 2003 Statut Membre Dernière intervention 9 août 2004
25 mai 2004 à 14:11
Ce qu'on me demande c'est de faire une fonction définissant un formulaire Web (page aspx) qui soit générique afin d'éviter d'avoir à en définir un pour chaque client (donc un programmes spécifique par client) et vu le nombre de client dans la base ce serait long et fastidieux.
dans le cas d'une fonction il suffirait de lui mettre en paramètre le nom du client pour sortir un formulaire avec les infos du client.

Maintenant, comme c'est la première fois en VB.Net que je définis une classe (hormis les formulaires), je voulais juste faire une fonction qui a le nom de la page en paramètre et renvoie un simple label sur cette même page.

Désolée si je ne me suis pas exprimée plus clairement.
concernant l'authentification j'avais déjà réussi à le faire, reste à faire la vérification sur toutes les pages du portail. Je pensais le faire via une variable session mais je verrais un peu plus tard préférant me concentrer sur ce problème-là.
Cordialement,
Suffren
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
25 mai 2004 à 17:21
Ce que tu veux est possible mais pourkoi veut tu qu'une fonction te renvoi un label ?

pourkoi ne pas mettre un label et ensuite remplir ce label en fonction de la base de donnée ?

si j'ai bien compris tu ne veux rajouter qu'une seule ligne pour permettre de faire ce que tu veux ?
tu peux faire ce qu'on appelle un controle utilisateur (UserControl) ce fichier a pour extension ascx et ce comporte exactement comme une page, met il faut le mettre dans une page.

par exemple : tu declares dans ta page ton fichier ascx, et apres tu l'appelles par le code html, et dans ton code vb tu pourra rajouter ton paramètre genre UserControl.IDClient = request.querystring("ID") ou quelque chose du genre.

dans ton fichier ascx tu met des labels etc... tout ce qui te fait plaisir :) tu met une propriété IDCient et dans le page load tu met le code qui lie les données au different label, rien de bien sorcier.
Je sais pas comment faire pour mieux t'aider
dsl

@+

Cyril
0
cs_Suffren Messages postés 92 Date d'inscription vendredi 4 juillet 2003 Statut Membre Dernière intervention 9 août 2004
26 mai 2004 à 09:37
Bonjour,
Décidément je n'arrive pas à m'expliquer correctement.
Le label est un exemple pour faire marcher une fonction (module de classe) avec le nom d'un Web form en paramètre.

A terme, je veux créer un formulaire type via une fonction du style :
somme.vb :
Public Class Calcul
Public Function somme(ByVal a As Integer, ByVal b As Integer) As Integer
Return a + b
End Function
End Class

Et page.aspx.vb:
dim c as new calcul
dim somme as integer 
somme = c.somme(1,2) 


Il suffirait de donner le nom du client, de trouver son ID et d'envoyer une fonction FonctionPage(F_nom) pour avoir les infos (avec F_nom le formulaire lié au nom du client).
Je ne vois pas comment je pourrais t'expliquer mieux ce que je dois faire.

sdinon te donner l'exemple en VB 6 qui marche avec un label :
Form1 :
Option Explicit

Private Sub Command1_Click()
 toto Me
End Sub

Et Module1:
Option Explicit

Sub toto(f As Form)
  f.Controls("Label1") = "toto"
End Sub


Cordialement,
Suffren
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
26 mai 2004 à 12:55
je pense que tu n'as que tres rarement travaillé pour le web est plus souvent pour les winform, or ce que tu demandes n'est je pense pas a ce que tu attends.

pour faire ce que tu veux tu fais un usercontrol que tu remplis comme tu veux
ton UC a cette structure :

Fichier ascx :

Public Class RecupCheckcboxControle
Inherits System.Web.UI.UserControl

Private Name As String

Public Property Nom() As String
Get
Return Name
End Get
Set(ByVal Value As String)
Name = Value
End Set
End Property

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Placez ici le code utilisateur pour initialiser la page

End Sub

End Class

et tu le charges pas ce code dans ta page :

Cell1 = New TableCell
Dim Ligne As New RecupCheckcboxControle
Lign.Nom = ID

Ligne = LoadControl("RecupCheckcboxControle.ascx")

(j'ai repris un code existant d'ou les noms de variable &co)

J'espere que ce code correspondra à tes attentes, bien sur il y aussi la possibilité de faire des controles personnalisé qui évite d'ecrire lign= loadcontrol() mais c'est beaucoup plus compliqué car tu ne pourras pas mettre du code html dans ton controle ...

@+

Cyril
0
cs_Suffren Messages postés 92 Date d'inscription vendredi 4 juillet 2003 Statut Membre Dernière intervention 9 août 2004
27 mai 2004 à 15:43
Bonjour,
j'ai résolu mon problème avec le label et le formulaire Web en paramètre; je mets le code au cas où çà aiderait quelqu'un.

Tout d'abord formulaire avec un bouton et un label (déclaré PUBLIC et non protected)
 Private Sub CmdOk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdOk.Click
        Dim Fonction As New f_page()
        Fonction.ref_page(page)
    End Sub

puis la fonction ref_page appartenant à la classe f_page:

Public Class f_page
    Public Function ref_page(ByRef nom_page As WebForm1)
        nom_page.ResFct.Text = "Toto"
    End Function
End Class

Attention au ByRef car il ne s'agit pas d'une valeur; c'est ce qui ne marchait pas en fait.

Merci d'avoir tent é de m'aider Cyril.
Cordialement,
Suffren
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
27 mai 2004 à 19:30
je suppose que ResFct est le label de ta page ...
ce que tu as fait est une solution, mais tu cherches beaucoup trop compliqué, le seul avantage c'est que par la tu peux reutiliser ta fonction si tu as exactement les meme controles dans la page parentes mais avec une disposition differente, mais ce ne doit pas etre souvent le cas.
je te conseil de t'informer sur les usercontrol, qui te fais ce que tu demandes, avec une simplication poussé à l'extreme ...

@+

Cyril
0
Rejoignez-nous