2009-11-17 121 views

回答

2

顯然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;