hallo,
Ik ben nieuw hier en ik heb me geregistreerd omdat ik op enkele problemen ben gestoten welke ik zelf niet kan oplossen.
Ik post dit hier omdat dit werkt met de asp:scriptmanager en dus geen gewone javascript functies zijn.
Ik ben een dll bestand aan het maken van een MaskedTextbox. Ik kan dit perfect maken het enige probleem is dat de functie onpropertychange in IE niet wil werken zoals het hoort.
ik heb volgende javascript gemaakt om de propertychange toe te voegen aan mijn control:
[JS]
Type.registerNamespace("QuyoControls.Web.UI");
QuyoControls.Web.UI.MaskedTextbox = function(element)
{
QuyoControls.Web.UI.MaskedTextbox.initializeBase(this, [element]);
this._propertyChangeDelegate = null
}
QuyoControls.Web.UI.MaskedTextbox.prototype =
{
get_Mask : function()
{
return this.get_element().Mask;
},
set_Mask : function(value)
{
this.get_element().Mask = value;
},
initialize : function()
{
QuyoControls.Web.UI.MaskedTextbox.callBaseMethod(this, 'initialize');
var element = this.get_element();
if(!this._propertyChangeDelegate)
{
this._propertyChangeDelegate = Function.createDelegate(this, this.propertyChangeEventHandler);
$addHandler(element, "propertychange", this._propertyChangeDelegate);
}
},
dispose : function()
{
var element = this.get_element();
if(this._propertyChangeDelegate)
{
$removeHandler(element, "propertychange", this._propertyChangeDelegate);
this._propertyChangeDelegate = null;
}
QuyoControls.Web.UI.MaskedTextbox.callBaseMethod(this, 'dispose');
},
propertyChangeEventHandler : function(e)
{
alert("succes");
}
}
QuyoControls.Web.UI.MaskedTextbox.registerClass("QuyoControls.Web.UI.MaskedTextbox", Sys.UI.Control);
if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();
[/JS]
met deze script werkt de onpropertychange perfect zoals het hoord. Het enige probleem is dat de textbox de Mask moet weergeven. hierdoor voer ik dit toe.
element.value = element.Mask;
wanneer ik dit doe en ik open de contextmenu op de control en klik op "verwijderen" dan werkt de onpropertychange niet. wanneer ik eerst iets typ en dan dezelfde actie doe dan werkt het weer wel.
De onproperty change werkt niet zoals het hoor vanaf ik deze command uitvoer en ik wil weten hoe ik de textbox toch zijn Mask kan laten weergeven en de onpropertychange toch correct weergeeft.
Het werkt correct als ik value in the html tag zet maar dit probeer ik net te vermijden.
Ik ben nieuw hier en ik heb me geregistreerd omdat ik op enkele problemen ben gestoten welke ik zelf niet kan oplossen.
Ik post dit hier omdat dit werkt met de asp:scriptmanager en dus geen gewone javascript functies zijn.
Ik ben een dll bestand aan het maken van een MaskedTextbox. Ik kan dit perfect maken het enige probleem is dat de functie onpropertychange in IE niet wil werken zoals het hoort.
ik heb volgende javascript gemaakt om de propertychange toe te voegen aan mijn control:
[JS]
Type.registerNamespace("QuyoControls.Web.UI");
QuyoControls.Web.UI.MaskedTextbox = function(element)
{
QuyoControls.Web.UI.MaskedTextbox.initializeBase(this, [element]);
this._propertyChangeDelegate = null
}
QuyoControls.Web.UI.MaskedTextbox.prototype =
{
get_Mask : function()
{
return this.get_element().Mask;
},
set_Mask : function(value)
{
this.get_element().Mask = value;
},
initialize : function()
{
QuyoControls.Web.UI.MaskedTextbox.callBaseMethod(this, 'initialize');
var element = this.get_element();
if(!this._propertyChangeDelegate)
{
this._propertyChangeDelegate = Function.createDelegate(this, this.propertyChangeEventHandler);
$addHandler(element, "propertychange", this._propertyChangeDelegate);
}
},
dispose : function()
{
var element = this.get_element();
if(this._propertyChangeDelegate)
{
$removeHandler(element, "propertychange", this._propertyChangeDelegate);
this._propertyChangeDelegate = null;
}
QuyoControls.Web.UI.MaskedTextbox.callBaseMethod(this, 'dispose');
},
propertyChangeEventHandler : function(e)
{
alert("succes");
}
}
QuyoControls.Web.UI.MaskedTextbox.registerClass("QuyoControls.Web.UI.MaskedTextbox", Sys.UI.Control);
if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();
[/JS]
met deze script werkt de onpropertychange perfect zoals het hoord. Het enige probleem is dat de textbox de Mask moet weergeven. hierdoor voer ik dit toe.
element.value = element.Mask;
wanneer ik dit doe en ik open de contextmenu op de control en klik op "verwijderen" dan werkt de onpropertychange niet. wanneer ik eerst iets typ en dan dezelfde actie doe dan werkt het weer wel.
De onproperty change werkt niet zoals het hoor vanaf ik deze command uitvoer en ik wil weten hoe ik de textbox toch zijn Mask kan laten weergeven en de onpropertychange toch correct weergeeft.
Het werkt correct als ik value in the html tag zet maar dit probeer ik net te vermijden.
Laatst bewerkt: