2010-12-08 12 views
2

Ich versuche Package Variable mein Usercontrol weitergeben müssen:Pass Variable Usercontrol

<uc:Template ID="Template" runat="server" Package="<%=TemplateParams.SimpleSearch %>" /> 

aber ohne Glück - in UC es gibt mir <%=TemplateParams.SimpleSearch %> String statt SimpleSearch Parameter von TemplateParams Klasse.

Wie geht das?

Edit:

über Code hinter Weg, ich weiß - ich würde gerne wissen, wie es aus dem Blickfeld zu tun.

Antwort

0

In der Benutzersteuerung, die die Eigenschaft übergeben können Sie versuchen, hält belichten Sie das BrowsableAttribute Attribut festlegen:

[BrowsableAttribute(true)] 
public string myProperty { get; set; } 

Dies sollte es in der XML-Version des Steuerelements verfügbar machen.

bearbeiten
Wenn Ihr TemplateParams.SimpleSearch ein String ist, dann sollten Sie in der Lage sein, Folgendes zu tun:

Package='<%=TemplateParams.SimpleSearch%>' 

Die ' macht den Unterschied hier. Wenn es ein Objekt ist, müssen Sie es im Code dahinter tun.

+0

Es löst das Problem nicht - noch 'Package' enthält '<% ​​= TemplateParams.SimpleSearch%>' string. – hsz

+0

@hsz - Ich habe ein Update gemacht. –

0

Von Code hinter Sie Variable oder einen Satz Eigenschaften

Template.variable="foo"; 
0
Page.FindControl("Template").Attributes.Add("Package", "YourValueGoesHere"); 
0

Eine Alternative, wenn Sie es wirklich im Markup tun möchten, ist ein expression builder

wir Ihnen diese

verwenden verwenden

können, schreiben Code wie

<uc:Template ID="Template" runat="server" Package="<%$ Code : TemplateParams.SimpleSearch %>" /> 
this one für viele ähnliche Aufgaben