Как я добавляю События Страницы для ASP.NET в Visual Studio 2008

Это не способ сделать это, вы должны использовать делегатов, я предполагаю, что у нас есть два контроллера представления ViewController1 и ViewController2, и этот элемент проверки находится в первом, и когда его состояние изменяется, вы хотите что-то сделать в ViewController2, чтобы добиться этого надлежащим образом, вы должны сделать следующее:

Добавить новый файл в ваш проект (Протокол Objective-C) Файл -> Новый, теперь назовите его ViewController1Delegate или как хотите, и напишите они между директивами @interface и @end

@optional

- (void)checkStateDidChange:(BOOL)checked;

Теперь перейдите к ViewController2.h и добавьте

#import "ViewController1Delegate.h"

, затем измените его определение на

@interface ViewController2: UIViewController<ViewController1Delegate>

Теперь перейдите к ViewController2.m и внутри реализации добавьте:

- (void)checkStateDidChange:(BOOL)checked {
     if (checked) {
           // Do whatever you want here
           NSLog(@"Checked");
     }
     else {
           // Also do whatever you want here
           NSLog(@"Not checked");
     }
}

Теперь перейдите к ViewController1.h и добавьте следующее свойство:

@property (weak, nonatomic) id<ViewController1Delegate> delegate; 

Теперь, если вы создаете ViewController1 внутри ViewController2 после какое-то событие, то вы должны сделать это таким образом, используя файлы NIB:

ViewController1* controller = [[NSBundle mainBundle] loadNibNamed:@"ViewController1" owner:self options:nil][0];
controller.delegate = self;
[self presentViewController:controller animated:YES completion:nil];

Теперь все готово, когда вы обнаруживаете событие проверки, измененное в V iewController1, все, что вам нужно сделать, это ниже

[delegate checkStateDidChange:checked]; // You pass here YES or NO based on the check state of your control

Пожалуйста, скажите мне, если есть что-то, что не ясно, если я не правильно понял ваш вопрос.

9
задан Chet 25 June 2009 в 21:21
поделиться

4 ответа

  • В обозревателе решений щелкните страницу правой кнопкой мыши и выберите «Просмотр конструктора компонентов» из контекстного меню
  • откройте панель / окно свойств (нажмите F4 )
  • теперь щелкните желтую стрелку / мигающий значок, и вы увидите список всех событий страницы
  • дважды щелкните событие, для которого вы хотите добавить обработчик

Я почти уверен, что был другой способ (запуск из представления дизайнера), но я не могу воспроизвести его.

Я обычно не использую обработчики событий страницы, вместо этого я переопределяю соответствующие методы (например, OnLoad вместо Page_Load ]). Чтобы реализовать одно из этих переопределений, вы можете просто ввести «переопределить» в коде программной части и нажать пробел , чтобы получить список методов, которые вы можете переопределить.

27
ответ дан 4 December 2019 в 07:04
поделиться

в качестве ярлыка, чтобы увидеть, что доступно, вы всегда можете просто набрать «Страница». а затем просмотрите список в intellisense. Затем вы можете выбрать один, нажать + = Tab Tab , чтобы он сгенерировал для вас заглушку. как только заглушка будет создана, вам придется удалить строку «Page.event + =», где бы вы ее ни создавали. Это своего рода обходной путь, но он может работать довольно быстро, если вы его освоите.

3
ответ дан 4 December 2019 в 07:04
поделиться

With the invaluable ReSharper installed (might work without) I can just type:

override

and when I hit space IntelliSence pops up with a list of all the events that I can override such as OnInit, OnPreRender, etc.

3
ответ дан 4 December 2019 в 07:04
поделиться

В окне исходного кода из поля со списком объектов выберите нужный элемент управления (страницу). Затем из поля со списком событий, которое находится справа от поля со списком предыдущего списка объектов, выберите нужное событие. Visual studio создаст для вас обработчик событий.

0
ответ дан 4 December 2019 в 07:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: