Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在页面加载时从代码隐藏设置ASP.NET标签文本?_Asp.net_Label - Fatal编程技术网

如何在页面加载时从代码隐藏设置ASP.NET标签文本?

如何在页面加载时从代码隐藏设置ASP.NET标签文本?,asp.net,label,Asp.net,Label,我似乎找不到答案。以下是场景: 我有一个使用C#的ASP.NET项目。我正在使用C#(使用ADO)从sqlite数据库加载数据(用户名、电子邮件等)。我将把数据加载到App_数据文件夹的类文件中的静态全局变量中。我需要能够在加载期间将用户名插入页面上的ASP.NET标签中 在PHP中,我会这样做: <?php function GetUserName() { //code which retrieves username from db. return username; } ?>

我似乎找不到答案。以下是场景: 我有一个使用C#的ASP.NET项目。我正在使用C#(使用ADO)从sqlite数据库加载数据(用户名、电子邮件等)。我将把数据加载到App_数据文件夹的类文件中的静态全局变量中。我需要能够在加载期间将用户名插入页面上的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”在当前上下文中不存在。如果我使用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>
受保护的无效页面加载(对象发送方,事件参数e)
{
如果(!Page.IsPostBack)
{
Label myLabel=this.FindControl(“myLabel”)作为标签;
myLabel.Text=“我的文本”;
}
}
名称
分数
名称
分数
对于此标签:

<asp:label id="myLabel" runat="server" />

更新(以下更新问题):

您不需要使用
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
。如何将这些文件链接在一起?

在ASP.NET页面中:

<asp:Label ID="UserNameLabel" runat="server" />

在页面加载事件中,设置标签

lbl\u username.text=“一些文本”

这是ASP.Net的基础,在控件中思考,而不是html流


考虑学习一门课程,或者读一本入门书。。。首先,忘记您在php中所做的事情:)

在您的aspx页面中尝试类似的操作

<asp:Label ID="myLabel" runat="server"></asp:Label>

如果您只是将代码放在页面上,那么后面的代码通常会自动生成一个要使用的字段,如@Oded所示

在其他情况下,您始终可以使用以下代码:

Label myLabel = this.FindControl("myLabel") as Label; // this is your Page class

if(myLabel != null)
   myLabel.Text = "SomeText";

我知道这是很久以前发布的,它被标记为已回答,但对我来说,所选的答案并没有回答我认为用户提出的问题。在我看来,他正在寻找一种可以在ASP.Net中采用的方法,这种方法与他以前在php中执行的内联数据绑定相对应

以下是他的php:

<p>Here is the username: <?php echo GetUserName(); ?></p>
以下是用户名:

以下是在ASP.Net中要执行的操作:

<p>Here is the username: <%= GetUserName() %></p>
以下是用户名:


hmm。。。这是我最初尝试的,但没有成功。也许我遇到了另一个问题?我得到一个错误,当前上下文中不存在标签。我把代码放在aspx.cs文件的页面加载中…@David-应该可以。最好是在
page\u load
处理程序中查看标签和代码的实际aspx标记,而不是PHP代码。啊,我想我看到了发生了什么。我正在MonoDevelop中开发,但该项目最初是在VisualStudio中创建的。不知怎的,当我转换项目时,RankPage.aspx.designer.cs被删除了。而RankPage.cs是一个输入错误,我的意思是RankPage.aspxUsing'Label myLabel=this.FindControl(“myLabel”)作为Label;'抛出未设置为对象错误实例的对象引用,就好像它在页面上找不到元素一样。我知道元素在页面上……好吧,最好的选择是进行空检查;如果控件不是标签,则语句的“as Label”部分将意味着它将返回null。我会把这个例子改得更安全些。
myLabel.Text = "My Label";
Label myLabel = this.FindControl("myLabel") as Label; // this is your Page class

if(myLabel != null)
   myLabel.Text = "SomeText";
<p>Here is the username: <?php echo GetUserName(); ?></p>
<p>Here is the username: <%= GetUserName() %></p>