Подтвердить что ты не робот

Как установить текст меток ASP.NET из кода позади загрузки страницы?

Кажется, я не могу найти ответ. Здесь сценарий: У меня есть проект ASP.NET с использованием С#. Я загружаю данные (имя пользователя, адрес электронной почты и т.д.) Из базы данных sqlite с С# (используя ADO). Я загружу данные в статические глобальные переменные в файле класса в папке 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" не существует в текущем контексте. Если я объявляю "myLabel" с помощью функции FindControl(), я получаю исключение во время выполнения, если "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>
4b9b3361

Ответ 1

Для этой метки:

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

В используемом коде (С#):

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. Как вы связываете эти файлы вместе?

Ответ 2

Если вы просто размещаете код на странице, обычно код позади будет получать автоматически сгенерированное поле, которое вы должны использовать, например, @Oded.

В других случаях вы всегда можете использовать этот код:

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

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

Ответ 3

На странице ASP.NET:

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

В вашем коде (если вы используете С#):

function Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
       UserNameLabel.Text = "User Name";
    }
}

Ответ 4

В событии загрузки страницы вы устанавливаете метку

lbl_username.text = "some text";

Ответ 5

protected void Page_Load(object sender, EventArgs e)
{
    myLabel.Text = "My text";
}

это база ASP.Net, мышление в элементах управления, а не поток html.

Рассмотрите следующий курс или прочитайте книгу начинающих... и сначала забудьте о том, что вы сделали в php:)

Ответ 6

Попробуйте что-то подобное на странице aspx

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

а затем в вашем коде вы можете просто сделать

myLabel.Text = "My Label";

Ответ 7

Я знаю, что это было опубликовано давно, и на нем был отмечен ответ, но для меня выбранный ответ не отвечал на вопрос, который я думал, что пользователь создает. Мне показалось, что он искал подход, который можно использовать в ASP.Net, который соответствует его встроенной привязке данных, ранее выполнявшейся в php.

Вот его php:

<p>Here is the username: <?php echo GetUserName(); ?></p>

Вот что можно было бы сделать в ASP.Net:

<p>Here is the username: <%= GetUserName() %></p>