我似乎无法找到答案。这是场景: 我有一个使用C#的ASP.NET项目。我正在使用C#(使用ADO)从sqlite数据库加载数据(用户名,电子邮件等)。我将把数据加载到App_Data文件夹中的类文件中的静态全局变量中。我需要能够在加载期间将用户名插入到页面上的ASP.NET标签中。
在PHP中,我会这样做:
<?php
function GetUserName() {
//code which retrieves username from db.
return username;
}
?>
<p>Here is the username: <?php echo GetUserName(); ?></p>
谁能解释一下这是怎么做到的?我是ASP.NET的新手。
以下是更多细节的更新。我试过你们的建议。我的页面加载函数位于名为RankPage.aspx.cs的文件中,下面的表格位于RankPage.aspx中。我的想法是列出我从数据库中检索到的一堆用户。我投入'myLabel'只是为了测试它。现在,在我的代码中没有声明“myLabel”的情况下,错误是“myLabel”在当前上下文中不存在。如果我使用FindControl()函数声明'myLabel',我会得到一个运行时异常,即'myLabel'未设置为对象的实例。
以下是代码:
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>
答案 0 :(得分:28)
对于这个标签:
<asp:label id="myLabel" runat="server" />
在使用后的代码中(C#):
myLabel.Text = "my text";
更新(更新后的问题):
您不需要使用FindControl
- 整条线是多余的:
Label myLabel = this.FindControl("myLabel") as Label;
myLabel.Text = "my text";
应该只是:
myLabel.Text = "my text";
Visual Studio设计器应该创建一个文件,其中所有服务器端控件已经正确添加到类中(默认情况下在RankPage.aspx.designer.cs
文件中)。
您正在谈论RankPage.cs
文件 - Visual Studio将其命名为RankPage.aspx.cs
。你是如何将这些文件链接在一起的?
答案 1 :(得分:3)
如果您只是将代码放在页面上,通常后面的代码将获得一个自动生成的字段,您可以使用@Oded显示的字段。
在其他情况下,您始终可以使用此代码:
Label myLabel = this.FindControl("myLabel") as Label; // this is your Page class
if(myLabel != null)
myLabel.Text = "SomeText";
答案 2 :(得分:2)
在您的ASP.NET页面中:
<asp:Label ID="UserNameLabel" runat="server" />
在您的代码中(假设您正在使用C#):
function Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
UserNameLabel.Text = "User Name";
}
}
答案 3 :(得分:1)
我知道这是很久以前发布的,它已被标记为已回答,但对我而言,所选答案并没有回答我认为用户正在冒充的问题。在我看来,他正在寻找可以在ASP .Net中采用的方法,该方法对应于之前在php中执行的内联数据绑定。
这是他的php:
<p>Here is the username: <?php echo GetUserName(); ?></p>
以下是ASP .Net中的内容:
<p>Here is the username: <%= GetUserName() %></p>
答案 4 :(得分:0)
在页面加载事件中,您可以设置标签
lbl_username.text = "some text";
答案 5 :(得分:0)
protected void Page_Load(object sender, EventArgs e)
{
myLabel.Text = "My text";
}
这是ASP.Net的基础,思考控件,而不是HTML流程。
考虑学习一门课程,或者阅读一本初学者书......首先,忘记你在php中所做的事情:)
答案 6 :(得分:0)
在aspx页面中尝试这样的事情
<asp:Label ID="myLabel" runat="server"></asp:Label>
然后在你的代码隐藏中你可以做到
myLabel.Text = "My Label";