Comment puis-je définir un texte d'étiquette ASP.NET à partir du code sur le chargement de la page?
Je n'arrive pas à trouver une réponse là-bas pour cela. Voici le scénario:
J'ai un ASP.NET projet à l'aide de C#. Je suis le chargement de données (nom d'utilisateur, email, etc...) à partir d'une base de données sqlite avec C# (à l'aide d'ADO). Je vais charger les données dans la statique des variables Globales dans un fichier de classe dans mon dossier App_Data. J'ai besoin d'être en mesure d'insérer le nom de l'utilisateur dans un ASP.NET Étiquette sur une page au cours de la charge.
En PHP, je voudrais juste faire comme ceci:
<?php
function GetUserName() {
//code which retrieves username from db.
return username;
}
?>
<p>Here is the username: <?php echo GetUserName(); ?></p>
Quelqu'un peut-il expliquer comment c'est fait? Je suis nouveau sur ASP.NET.
Voici une mise à jour pour plus de détails. J'ai essayé ce que vous les gars ont suggéré. Ma fonction de chargement de la page est dans un fichier appelé RankPage.aspx.cs et le tableau ci-dessous, il est en RankPage.aspx. L'idée est de liste à un groupe d'utilisateurs que j'ai récupéré de la base de données. J'ai jeté dans 'myLabel' juste pour le tester. Dès maintenant, sans déclarer 'myLabel' dans mon code derrière, c'erreurs 'myLabel' n'existe pas dans le contexte actuel. Si je déclare 'myLabel' l'aide de la FindControl (), j'obtiens une exception d'exécution que 'myLabel' n'est pas définie à une instance d'un objet.
Voici le code:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
Label myLabel = this.FindControl("myLabel") as Label;
myLabel.Text = "my text";
}
}
<table>
<tbody>
<tr>
<th>Name</th>
<th>Score</th>
</tr>
<tr>
<td>name</td>
<td>Score</td>
</tr>
<!-- Current User -->
<tr>
<td><asp:Label id="currentUserName" runat="server"></asp:Label></td>
<td><asp:Label id="currentUserScore" runat="server"></asp:Label></td>
<td><asp:Label ID="myLabel" runat="server" /></td>
</tr>
<!-- End Current User -->
</tbody>
</table>
source d'informationauteur David
Vous devez vous connecter pour publier un commentaire.
Pour ce label:
Dans le code-behind de l'utilisation (C#):
Mise à jour (suite à la mise à jour de la question):
Vous n'avez pas besoin d'utiliser
FindControl
- que l'ensemble de la ligne est superflu:Doit être juste:
Le concepteur Visual Studio doit créer un fichier avec tous les contrôles côté serveur déjà ajoutés à la classe (dans un
RankPage.aspx.designer.cs
fichier, par défaut).Vous parlez d'un
RankPage.cs
fichier de la façon dont Visual Studio aurait nommé, il estRankPage.aspx.cs
. Comment êtes-vous reliant ces fichiers?Si vous êtes juste de placer le code sur la page, généralement le code derrière recevrez une auto généré champ à utiliser comme @Oded a montré.
Dans d'autres cas, vous pouvez toujours utiliser ce code:
Dans votre ASP.NET page:
Dans votre code derrière (en supposant que vous êtes à l'aide de C#):
Je sais que cela a été posté il y a longtemps, et il a été marqué répondu, mais pour moi, la réponse choisie n'était pas de répondre à la question je pensais que l'utilisateur pose. Il me semblait qu'il était à la recherche de l'approche que l'on peut prendre dans l'ASP .Net qui correspond à ses données en ligne de la liaison déjà réalisé en php.
C'était là sa php:
Ici est ce que l'on pourrait faire dans l'ASP .Net:
Dans le chargement de la page de l'événement que vous définissez votre étiquette
lbl_username.text = "some text";
c'est la base de ASP.Net pour les contrôles, pas de flux html.
Envisager de suivre un cours, ou en lisant un débutant livre... et d'abord, oubliez ce que vous avez fait en php 🙂
Essayer quelque chose comme cela dans votre page aspx
et puis dans votre code, vous pouvez simplement faire