Rambler's Top100
Главная
Новости
Статьи
Форумы
Книги
Коды
Сообщество
Блоги
О нас
 

Логин

Email:
  Пароль:

Войти
Зарегистрироваться
Забыл пароль

Поиск

 Искать :
 
Вперед

Сообщение

GreenAsh


Ведущий Диалог

Зарегистрирован:
18 July 2007
Сообщения: 108
Примеры кода: 0
 

RE: Как перегрузить JS контрол изнутри его самого ???

27 May 2008 11:53  


Превед. Пытался разобраться с JS closure чтобы написать свои JS контролы, через которые вызываю web service для заполнения их данными. Итак... написал след. JS классы. ControlClass -это базовый класс, WeatherClass - наследник. Таких как WeatherClass может быть много. Общие методы и проперти вынесены в родительский ControlClass. Вызов Веб Сервиса осуществляется в конструкторе класса. Вызываю след. образом:
var weather = New Weather($get("Div1")); 
Div1 - это контейнер, куда кладётся результат - отендеренный HTML код. В коде в самом низу я добавляю кнопку при нажатии на которую я хочу перегрузить данные, причём сохраняя ранее установленное содержимое WeatherClass контрола. В функцию onSuccess передаётся копия самого обьекта через userContext. Как это можно сделать? Никак не могу разобраться как и что мне вызвать в событии onclick для кнопки: <input id='Button1' type='text' value='Reload the Weather' onclick='...'>? Идея в том чтобы не создавать заново обьект WeatherClass, а использовать уже созданный. Спасибо.
////////////////////////////// ControlClass //////////////////////////////

function ControlClass(container) {
	this.container = null;
	this.html = null;
}

ControlClass.prototype.onLoading = function() { 
	this.html = "Loading..."; 
	this.render();
}

// come here when web service call failed
ControlClass.prototype.onFailed = function(error, control) { 
	control.html = "Error!";
	control.render(); 
}

ControlClass.prototype.render = function() {
	this.container.innerHTML = this.html;
}

////////////////////////////// WeatherClass //////////////////////////////

WeatherClass.prototype = new ControlClass(); // inheritance from ControlClass

function WeatherClass(container) { 
	this.container = container; 
	// web service call
	WebService.GetWeather(this.onSuccess, this.onFailed, this); 
	this.onLoading(); // show loading...
}

// come here when web service call succedeed
WeatherClass.prototype.onSuccess = function(data, control) { // control is the user context, it's the control itself passed as this
	control.html = data; // here we get some data back from the web service
	control.html += "<input id='Button1' type='text' value='Reload the Weather'>"; // Здесь надо добавить onclick='что то...' чтобы используя уже созданный ранее обьект, вызвать через него веб сервис и перегрузить данные
	control.render(); 
}
WeatherClass.prototype.onSuccess = function(data, control) { // control is the user context, it's the control itself passed as this
	control.html = data; // here we get some data back from the web service
	control.html += "<input id='Button1' type='text' value='Reload the Weather'>"; // Здесь надо добавить onclick='что то...' чтобы используя уже созданный ранее обьект, вызвать через него веб сервис и перегрузить данные
	control.render();
        //после рендера можно сделать:
        //control.onclick = new Function("функция"); или
        //если нужно использовать объект класса WeatherClass, то:
        //control.weather = this; // или назначаем его контролу изначально, при загрузке страницы
        //control.onclick = function(){
        //тело функции, причем переменная this указывает на объект control
        //используем WeatherClass обработки текущего контрола(если он индивидуален для контрола):
        //this.weather.[функции объекта]();
        //}
}


Наверх
  



Общие вопросы программирования на ASP.NET

 Как перегрузить JS контрол изнутри его самого ???slishnevsky  26 May 2008 18:30
 Re: Как перегрузить JS контрол изнутри его самого ???bured  27 May 2008 23:31
 Re: Как перегрузить JS контрол изнутри его самого ???ShSerge  27 May 2008 23:04
 Re: Как перегрузить JS контрол изнутри его самого ???ShSerge  27 May 2008 22:30
 Re: Как перегрузить JS контрол изнутри его самого ???elishnevsky  27 May 2008 22:38
 Как перегрузить JS контрол изнутри его самого ???elishnevsky  27 May 2008 21:50
 Как перегрузить JS контрол изнутри его самого ???slishnevsky  29 May 2008 04:06
 Как перегрузить JS контрол изнутри его самого ???elishnevsky  27 May 2008 21:54
 RE: Как перегрузить JS контрол изнутри его самого ???GreenAsh  27 May 2008 11:56
 RE: Как перегрузить JS контрол изнутри его самого ???slishnevsky  27 May 2008 21:13
 RE: Как перегрузить JS контрол изнутри его самого ???GreenAsh  27 May 2008 11:53
 Как перегрузить JS контрол изнутри его самого ???slishnevsky  26 May 2008 20:53
 
Наш Киев

Apartments for Rent

Rambler's Top100
Рейтинг@Mail.ru
Идея: Dimon aka Manowar Программирование: Dimon aka Manowar Дизайн: Dan Lebedev
Хостинг от компании Parking.ru
Карта сайта