Не удается получить доступ к моим элементам управления пользовательского интерфейса в коде C #.В чем дело? - PullRequest
1 голос
/ 01 сентября 2010

У меня нет доступа к элементам управления пользовательского интерфейса на моем веб-сайте ASP.Net.

Когда я создаю совершенно новую форму и перетаскиваю на нее элемент управления, я могу использовать C # для простого изменения свойств элемента управления, как и следовало ожидать.

Но когда я пытаюсь сделать то же самое на другой странице, я не могу получить доступ к любому элементу управления, перетаскиваю ли я новый элемент управления на страницу или нет.

Кажется, код и визуальная страница не связаны.

Как я могу это исправить?

Ответы [ 3 ]

4 голосов
/ 01 сентября 2010

от макушки головы:

Зарегистрирован ли код файла в верхней строке файла ASPX?

<%@ Page Title="Title" Language="C#" MasterPageFile="~/Default.Master" AutoEventWireup="true"
    CodeBehind="Page.aspx.cs" Inherits="MyNameSpace.Page" %>

Был ли файл конструктора удален или иным образом поврежден?Если это так, попробуйте удалить файл deigner.VS должен восстановить его для вас.

Проверьте действие сборки на конструкторе / коде файлов и убедитесь, что для них обоих установлено значение «Скомпилировать» (вы можете изменить этот параметр, щелкнув правой кнопкой мыши файлы вVS и выбор свойств, действие сборки должно быть в редакторе свойств файла)

Убедитесь, что файл вашего проекта настроен правильно.иногда обновление файла проекта (например, когда вы меняете версии VS) или просто общий доступ к файлам проекта через систему управления исходным кодом может привести к выходу из строя.убедитесь, что в ваших файлах есть записи, которые выглядят следующим образом в вашем файле csproj (подтвердите с помощью текстового редактора, с блокнотом все в порядке):

<Compile Include="Page.aspx.cs">
  <DependentUpon>Page.aspx</DependentUpon>
  <SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Page.aspx.designer.cs">
  <DependentUpon>Page.aspx</DependentUpon>
</Compile>

Я надеюсь, что один из них решит вашу проблему!

0 голосов
/ 19 февраля 2017

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

Чтобы использовать элементы управления ASP, представленные на странице, вам нужно объявить элемент управления как поле внутри класса, то есть класса, связанного с атрибутом «Наследовать» на вашей странице. Например, если у меня есть элемент управления меткой на моей странице с идентификатором «test», я бы объявил в своем классе следующее:

protected System.Web.UI.WebControls.Label test;
0 голосов
/ 30 июня 2011

Если у вас нет файла designer.cs, просто щелкните правой кнопкой мыши на aspx и «Преобразовать в веб-приложение», и вы получите его.

...