2007-05-18

Skicka värden till behaviors

En property i en Ajax Extender ser oftast ut så här:
[ExtenderControlProperty]
[DefaultValue("")]
public string MyProperty
{
get { ... }
set { ... }
}
Med en matchande property i klientsidans behavior:
get_MyProperty : function() { ... },
set_MyProperty : function(value) { ... }

Värden som anges på serversidans MyProperty kommer genom lite magi (nåja) att hamna på klientsidan och vara åtkomlig där.

Ibland vill man skicka över värden, eller sätta egenskaper på klientens behavior utan att ha en matchande property på Extender-kontrollen. För att åstadkomma detta så override:a RenderScriptAttributes() och lägg till klientegenskaper med AddProperty().
protected override void RenderScriptAttributes(ScriptBehaviorDescriptor descriptor)
{
base.RenderScriptAttributes(descriptor);
string horizontalAlignment=GetHorizontalAlignment();
descriptor.AddProperty("HorizontalAlignment", horizontalAlignment);
}

Voilà, propertyn HorizontalAlignmenti klientens behavior kommer att få ett värde utan att vi skapade en property på serversidan.

Inga kommentarer: