| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- Type.registerNamespace("Demo");
- // Constructor
- Demo.Question = function(element) {
- Demo.Question.initializeBase(this, [element]);
- // Create a delegate for the select event.
- this._selectDelegate = null;
- }
- Demo.Question.prototype = {
- // correct property accessors
- get_correct: function() {
- return this.get_element().name - 1;
- },
- set_correct: function(value) {
- this.get_element().name = value;
- },
- // Bind and unbind to select event.
- add_select: function(handler) {
- this.get_events().addHandler('select', handler);
- },
- remove_select: function(handler) {
- this.get_events().removeHandler('select', handler);
- },
- // Release resources before control is disposed.
- dispose: function() {
- var element = this.get_element();
- if (this._selectDelegate) {
- $clearHandlers(element);
- delete this._selectDelegate;
- }
- Demo.Question.callBaseMethod(this, 'dispose');
- },
- initialize: function() {
- var element = this.get_element();
- // Make sure no option is selected.
- element.value = "";
-
- // Attach delegate to select event.
- if (this._selectDelegate === null) {
- this._selectDelegate = Function.createDelegate(this, this._selectHandler);
- }
- Sys.UI.DomEvent.addHandler(element, 'change', this._selectDelegate);
- Demo.Question.callBaseMethod(this, 'initialize');
- },
-
- _selectHandler: function(event) {
- var h = this.get_events().getHandler('select');
- if (h) h(this, Sys.EventArgs.Empty);
- }
- }
- Demo.Question.registerClass('Demo.Question', Sys.UI.Control);
- // Since this script is not loaded by System.Web.Handlers.ScriptResourceHandler
- // invoke Sys.Application.notifyScriptLoaded to notify ScriptManager
- // that this is the end of the script.
- if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();
|