Apparemment, les ExtenderControlProperties ne sont pas bidirectionnelles. J'ai résolu le problème en utilisant un champ caché. Voici comment je l'ai implémenté.
J'ai mis ceci dans le prolongateur
protected override void OnInit(EventArgs e)
{
HiddenFieldId = ClientID + "_HiddenValue";
Page.ClientScript.RegisterHiddenField(HiddenFieldId, "");
base.OnInit(e);
}
[ExtenderControlProperty]
[DefaultValue("")]
public string HiddenFieldId
{
get { return GetPropertyValue("HiddenFieldId", ""); }
set { SetPropertyValue("HiddenFieldId", value); }
}
public string HiddenFieldValue
{
get { return Page.Request.Form[HiddenFieldId]; }
}
et ceci dans le comportement
//In the prototype
get_HiddenFieldId: function() {
return this._hiddenFieldId;
},
set_HiddenFieldId: function(value) {
this._hiddenFieldId = value;
},
//In the initialisation
this._hiddenFieldId = null;
//In my method when I want to set the hidden value.
document.getElementById(this._hiddenFieldId).value = valueToSet;