Type.registerNamespace('ReadWriteTextBox');
ReadWriteTextBox.ReadWriteTextBoxBehavior = function(element) {
ReadWriteTextBox.ReadWriteTextBoxBehavior.initializeBase(this, [element]);
// TODO : (Step 1) Add your property variables here
//
this._myPropertyValue = null;
}
this._disableOnDblClick = null;
// DOM Element de type DIV
this._divReadOnly = null;
// Handlers
this._textBoxBlurHandler = null;
this._textBoxDblClickHandler = null;
this._divClickHandler = null;
get_ DisableOnDblClick : function() {
return this._disableOnDblClick;
},
set_ DisableOnDblClick : function(value) {
this._disableOnDblClick = value;
get_disableOnDblClick: function() {
set_disableOnDblClick: function(value) {
[ExtenderControlProperty]
[DefaultValue(true)]
[ClientPropertyName("disableOnDblClick")]
public Boolean DisableOnDblClick
{
get
return GetPropertyValue("DisableOnDblClick", true);
set
SetPropertyValue("DisableOnDblClick", value);
_initializeDiv : function(){
var element = this.get_element();
this._divReadOnly = document.createElement('div');
this._divReadOnly.id = element.id + "_div";
this._divReadOnly.innerHTML = element.value;
this._divReadOnly.style.cursor = "pointer";
// Récupération de la position et de la taille du TextBox
var elementBounds = CommonToolkitScripts.getBounds(element);
Sys.Debug.trace("Bounds : X = " + elementBounds.x + " Y = " + elementBounds.y + " Width = " +
elementBounds.width + " Height = " + elementBounds.height);
// Affectation des éléments taille et position au div
CommonToolkitScripts.setBounds(this._divReadOnly, elementBounds);
document.body.appendChild(this._divReadOnly);
Sys.Debug.trace("Bounds : X = " + elementBounds.x + " Y = " + elementBounds.y +
" Width = " + elementBounds.width + " Height = " + elementBounds.height);
this._divClickHandler = Function.createDelegate(this, this._onDivClick);
$addHandler(this._divReadOnly, "click", this._divClickHandler);
_onDivClick : function(e) {
/// <summary>
/// Clic sur le Div
/// </summary>
/// <param name="e" type="Sys.UI.DomEvent">
/// </param>
Sys.Debug.trace("Click sur la Div");
if (this._disableOnDblClick){
return;
Sys.UI.DomElement.setVisible(this._divReadOnly, false);
Sys.UI.DomElement.setVisible(this.get_element(), true);
// Focus sur la zone de texte
this.get_element().focus();
this._setClientState(value) ;
var __value = this._getClientState() ;
set_disableOnDblClick : function(value) {
// Affectation de la valeur dans le ClientState, pour récupération lors du PostBack
this.set_ClientState(value);
public ReadWriteTextBoxExtender()
this.ClientStateValuesLoaded += ReadWriteTextBoxExtender_ClientStateValuesLoaded ;
this.EnableClientState = true;
void ReadWriteTextBoxExtender_ClientStateValuesLoaded(object sender, EventArgs e)
string clientState = base.ClientState;
if (clientState != null)
bool value = bool.Parse(clientState);
this.DisableOnDblClick = value ;
if(element) {
$removeHandler(element, "blur", this._textBoxBlurHandler);
$removeHandler(element, "dblclick", this._textBoxDblClickHandler);
if (this._divReadOnly)
$removeHandler(this._divReadOnly, "click", this._divClickHandler);