Я довольно новичок в сценарии .NET и столкнулся с небольшой проблемой с простым приложением asp.net и доступом к элементам управления, определенным в файле .ascx в код позади.Код Asp.net за отсутствием доступа к элементам управления в ascx
Вот мой Default.ascx файл:
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="_Default" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<p>
<asp:Label AssociatedControlID = "userText" AccessKey = "L" runat="server" ID="userLabel">Username</asp:Label>
<asp:TextBox ID = "userText" runat="server" MaxLength="20" ></asp:TextBox>
</p>
</asp:Content>
Вот файл Default.aspx.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Page_PreInit(object sender, EventArgs e)
{
userLabel.Text = "Hello!";
}
}
Как вы можете видеть, довольно прямо вперед, все, что я пытаюсь do - это изменение текстового свойства метки программно. Однако, когда я запускаю это, я получаю исключение NullReferenceException, userLabel не установлен в экземпляр объекта. Должно ли userLabel быть свойством моего класса _Default? Я попытался явно установить userLabel как свойство, но получаю ошибку времени компиляции, говоря, что userLabel уже имеет определение.
Я полагаю, что мне не хватает чего-то очень простого здесь, но я не уверен, что это такое. Может ли кто-нибудь сказать мне, что я делаю неправильно? Большое спасибо!
Прокрутите направо. Это здесь. :) – Khan