ASP.net - не существует в текущем контексте - PullRequest
0 голосов
/ 16 октября 2018
    public partial class Site : System.Web.UI.MasterPage
{
    //page load event
    protected void Page_Load(object sender, EventArgs e)
    {
        //displaying current date on the label
        lblDate.Text = DateTime.Now.ToString();
    }
}

и в Site.master у меня есть:

<header>
<h2>Two Column Layout.</h2>
<br />
<div id="displayDate">
<asp:Label runat="server" ID="lblDate" />
</div>

Вот код из верхней части .master файла в соответствии с запросом:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="MillerDylanTwoColumn.site" %>

Ошибка Iполучаю: Ошибка CS0103 Имя 'lblDate' не существует в текущем контексте

Может кто-нибудь показать мне, где я ошибся?Благодаря.

Ответы [ 3 ]

0 голосов
/ 16 октября 2018

Я думаю, что в этом случае было бы проще просто инициализировать текст, пока событие загрузки метки вместо того, чтобы находить экземпляр элемента управления при загрузке страницы.

protected void lblDate_Load(object sender, EventArgs e)
{
    var lbl = sender as Label;
    lbl.Text = DateTime.Now.ToString();
}

Кстати, если вам нужно время,не только свиданиеВам может понадобиться таймер или что-то подобное для обновления метки.

0 голосов
/ 16 октября 2018

Извините, что отвечаю здесь, так как я не могу комментировать.Но вам нужно изменить значение метки позже или это всего лишь одноразовая загрузка?Если это разовая сделка, которую вы можете просто заключить, если вам нужно запустить ее, вы можете поместить ее в панель обновления с таймером обновления.<asp:Label runat="server" ID="lblDate" Text='<%# DateTime.Now.ToString() %>' />

0 голосов
/ 16 октября 2018

Попробуйте это:

protected void Page_Load(object sender, EventArgs e){
        Label lblDate = (Label) Master.FindControl("lblDate");

        lblDate.Text = DateTime.Now.ToString();
    }

Обновление:

Затем добавьте это пространство имен к вашему частичному:

using System.Web.UI.WebControls;

...