2 votes

Liaison bidirectionnelle ExtenderControlProperty ?

Je suis en train de créer un contrôle d'extension AJAX et j'aimerais transmettre une valeur au serveur lors du post-back.

Les propriétés d'ExtenderControl sont-elles bidirectionnelles ? Si ce n'est pas le cas, existe-t-il un moyen de les rendre bidirectionnelles ?

2voto

lszrh Points 559

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;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X