Как закодировать мой файл класса в отдельный файл для работы на другой странице
I created a code to dynamically create button control, it worked in the .aspx and aspx.cs file, but when I separated the code in a separate class file the project would not compile
Что я уже пробовал:
Я создал код для динамического создания элемента управления button, он работал в файлах.aspx и aspx.cs, но когда я разделил код в отдельном файле класса, проект не компилировался. Ниже приведен код, который работал в файлах aspx и aspx. cs при загрузке страницы:
Код aspx-файл: &ЛТ;АСП:заполнитель идентификатор="PlaceHolder1" атрибут runat="сервер"и GT;
С фоновым кодом:
Кнопка button = новая кнопка();
кнопка.Text = " Тест";
PlaceHolder1.Контроля.Добавить (кнопка);
кнопка.Нажмите кнопку += делегировать
{
// Сделайте свой код здесь
};
Но когда я разделил его в файле класса как код ниже, он не будет компилироваться, а покажет ошибку, которая говорит: “CS0103: имя 'PlaceHolder1' не существует в текущем контексте.
использование системы;
использование системы.Коллекции.Общий;
использование System. Linq;
использование системы.Сеть;
используя системы.Веб.ИП;
используя системы.Сведения;
используя системы.Данных.Поставщики sqlclient;
используя системы.Веб.Пользовательского интерфейса.WebControls;
пространство имен по умолчанию.Папке app_code
{
открытый класс CreateButtonClass
{
общественные CreateButtonClass()
{
}
общественного недействительными CreateTestButton()
{
Кнопка button = новая кнопка();
кнопка.Text = " Тест";
PlaceHolder1.Контроля.Добавить (кнопка);
кнопка.Нажмите кнопку += делегировать
{
// Сделайте свой код здесь
};
}
Мой вопрос заключается в том, как мне организовать код так, чтобы я мог скомпилировать и вызвать метод?
F-ES Sitecore
Вам придется передать заполнитель в качестве параметра функции
общественного недействительными CreateTestButton(заполнитель заполнитель)
{
Кнопка button = новая кнопка();
кнопка.Text = " Тест";
заполнитель.Управления.Добавить (кнопка);
вызывающий код будет находиться в коде позади страницы aspx, на которой есть PlaceHolder1, и будет
CreateTestButton(PlaceHolder1);
Однако, как уже упоминалось в решении 1, Если вы хотите повторно использовать компоненты, то посмотрите на пользовательские элементы управления как на asp.net фреймворк разработан с учетом повторного использования, поэтому вы должны использовать инструменты, которые он вам дает.
Member 12652465
Привет, спасибо за вашу помощь до сих пор. Я попробовал код, прежнее сообщение об ошибке исчезло, но новое сообщение об ошибке: System.NullReferenceException: ссылка на объект не установлена на экземпляр объекта.указывающий на заполнитель.Управления.Добавить (кнопка);
Member 12652465
Привет, спасибо за вашу помощь до сих пор. Я попробовал код, прежнее сообщение об ошибке исчезло, но новое сообщение об ошибке: System.NullReferenceException: Object reference not set to an instance of an object.pointing to placeholder.Управления.Добавить (кнопка);
F-ES Sitecore
тогда "заполнитель", вероятно, равен нулю.
Member 12652465
Но как мне решить этот вопрос? Я все еще новичок в этом деле. пожалуйста помочь.