ExtenderControlProperty двусторонняя привязка? - PullRequest
2 голосов
/ 18 ноября 2009

Я создаю элемент управления AJAX Extender и хотел бы передать значение обратно на сервер после постбека.

Являются ли ExtenderControlProperties двусторонними? Если нет, есть ли способ сделать их двухсторонними?

1 Ответ

2 голосов
/ 18 ноября 2009

Очевидно, что свойства ExtenderControlProperties не являются двусторонними. Я решил это с помощью скрытого поля. Вот как я это реализовал.

Я положил это в расширитель

    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]; }
    }

и это в поведении

//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;
...