Je voudrais définir le texte de deux étiquettes aux valeurs trouvées dans un FormView sur une page (dont les données proviennent d'un SQLDataSource.)Comment est-ce que je devrais mettre le texte d'une étiquette d'asp.net à une certaine valeur dans un autre contrôle?
Quelle est la meilleure façon de faire cela? J'envisage d'utiliser l'événement DataBound pour FormView pour définir le texte d'étiquette sur la valeur d'un champ dans FormView ou d'utiliser l'événement SQLDataSource Selected pour définir les étiquettes sur les valeurs récupérées par la requête. Puis-je utiliser l'événement Page_Load conjointement avec FormView?
La propriété FormView affiche uniquement l'une des deux valeurs, bien que l'autre valeur soit récupérée par SQLDataSource. Je ne suis pas familier avec l'accès aux structures de données derrière ces contrôles, mais comprendre les données sont là, donc je pourrais aussi bien l'utiliser plutôt que d'exécuter la même requête SQL deux fois.
Ma question est donc quel événement dois-je utiliser, à quel contrôle puis-je accéder aux données, et comment puis-je accéder aux données de ce contrôle?
J'ai trouvé une solution similaire après avoir posé ma question. J'ai essayé d'utiliser l'événement Page_Load et d'accéder directement au contrôle FormView directement (plutôt qu'en tant qu'expéditeur dans un événement associé.) Dans le contexte de l'événement Page_Load, FormView.DataItem renvoie null, alors que le débogueur montre qu'il contient en réalité un DataRowView avec le données que je veux accéder. – Matt
Peu importe, lors de rechargements ultérieurs, il semble que c'était un coup de chance. – Matt
Dans page_load, il n'y a aucune garantie que le formview sera rempli. En utilisant l'événement OnDataBound, vous ne vous déclenchez qu'une fois que vous avez des données ou que les données ont été modifiées (repeuplées). Vous n'avez pas besoin d'utiliser l'expéditeur de cours, vous pouvez simplement échanger (expéditeur (FormView)) avec l'ID du contrôle FormView. –