J'ai créé le contrôle de l'utilisateur. Il a Comment le faire fonctionner? Merci ... p> p> string [] code> Propriété publique (il peut s'agir de la liste
5 Réponses :
En entrant vos valeurs variables dans le point de vue explicitement, par votre exemple, vous combinez directement votre UI avec votre logique. P>
Si ces valeurs ne changent jamais, il ne sert à rien de les mettre dans la marque - il serait préférable de les mettre dans le code de votre utilisateur. P>
Si ces valeurs peuvent être différentes chaque fois que les charges de contrôle de l'utilisateur, ils devraient provenir d'une source dynamique, tels que des variables d'état de session, des variables publiques, des valeurs de contrôle, etc. (dans ce cas, votre contrôle de l'utilisateur les augmenter chaque fois qu'il charge.) p>
Si ces valeurs changent uniquement au moment de la conception, vous pouvez toujours les définir à nouveau comme ci-dessus, mais vous pourriez envisager d'envisager de construire un «contrôle personnalisé» dans ce cas. P>
Quoi qu'il en soit, je ne sais pas exactement ce que vous essayez d'atteindre, j'espère donc que l'une de ces options peut aider. P>
bonne chance p>
En fait, cette propriété n'est pas étroitement liée à la logique commerciale. Il représente juste l'un des paramètres de ce contrôle utilisateur. Cependant, la définition de cette propriété dans la page_LOAD ne me satisfait maintenant. :) Merci pour vos conseils.
Autant que je sache, vous ne pouvez pas faire ce que vous voulez faire avec un contrôle de l'utilisateur. Vous auriez besoin d'écrire un contrôle personnalisé. P>
voir Exemple de propriétés de contrôle du serveur sur MSDN. P >
Voici un exemple de comment accomplir ce que vous demandez. Les contrôles d'enfants sont lus sous forme de commandes HTMLGeneric, de sorte que vous devez les convertir. Comme ils sont lus, je les convertis dans ma classe "stringcontrol" personnalisée. Si vous souhaitez utiliser une structure plus avancée, vous pouvez simplement améliorer le constructeur de StringControl.
Partial Class UserControlStrings_MyControl Inherits System.Web.UI.UserControl Private _MyStringCollectionProperty As New MyUserControlStringCollectionClass(Me) <PersistenceMode(PersistenceMode.InnerProperty)> Public ReadOnly Property MyStringCollectionProperty As MyUserControlStringCollectionClass Get Return _MyStringCollectionProperty End Get End Property End Class Public Class MyUserControlStringCollectionClass Inherits ControlCollection Sub New(ByVal owner As Control) MyBase.New(owner) End Sub Public Overrides Sub Add(ByVal child As System.Web.UI.Control) MyBase.Add(New StringControl(child)) End Sub End Class Public Class StringControl Inherits HtmlGenericControl Sub New(ByVal GenericControl As HtmlGenericControl) MyBase.New() Me.Value = GenericControl.InnerHtml End Sub Public Property Value As String = String.Empty Public Overrides Function ToString() As String Return Value End Function End Class
Vous pouvez réellement utiliser tyconverterattribute pour spécifier une classe de convertisseur (Stringarrayconverter dans ce cas). P>
Vous pouvez utiliser une collection et une liste. P>
Assurez-vous de vérifier http: / /msdn.microsoft.com/en-us/library/9txe1d4x%28v=VS.100%29.aspx - Il s'applique très bien au contrôle de l'utilisateur et sur le lien Stackoverflow ci-dessus, j'ai expliqué comment vous pouvez créer un lien dans le Page ASPX ou WebConfig P>
Qu'essayez-vous d'atteindre? Vous ne pouvez pas simplement définir la propriété dans le code-derrière? (Par exemple, mycontrol1.mycollet = nouvelle liste {"FOO", "BAR"};) Ou, "runat =" serveur "/>
De Cource, je peux définir la propriété en code de code, comme "Option d'émérées". Ce que je veux, c'est séparer la déclaration d'interface utilisateur de la logique. Concernant votre deuxième option ("<% = nouvelle liste ..."). Cela ne fonctionne pas, car les balises de serveur ne peuvent pas contenir des expressions "<%%>".