2009-03-08 8 views
2

OK, je viens d'un environnement PHP, mais je viens d'être chargé de développer des composants WebPart personnalisés dans SharePoint. J'ai compris comment créer et déployer une partie Web de base "Bonjour tout le monde" dans VB. D'accord jusqu'ici. Ce que je suis bloqué est un point vraiment basique et stupide - comment diable puis-je mettre des choses dans une partie Web VB?Présentation du formulaire Sharepoint dans VB

Pour un exemple, voici une étiquette et une zone de texte:

protected overrides sub createchildcontrols() 
mybase.createchildcontrols 

dim mylabel as new label 
dim mytextbox as new textbox 

mylabel.text ="My label text" 
mytextbox.text ="My textbox" 

me.controls.add(mylabel) 
me.controls.add(mytextbox) 

Comment puis-je, par exemple, obtenir mylabel et mon champ de saisie apparaissent sur différentes lignes, plutôt que de courir l'un après l'autre comme ils le font à présent? En PHP, je voudrais juste les emballer dans un top les casser sur des lignes différentes, mais comment puis-je le faire ici?

Répondre

2

Il y a plusieurs façons de s'y prendre. Le plus simple, si vous voulez juste que les contrôles apparaissent sur des lignes différentes serait d'ajouter un ASP.net LiteralControl avec un tag BR entre eux. En dehors de cela, vous pouvez toujours utiliser les contrôles de formatage ASP.net, comme Table pour diviser vos contrôles en sections pour la sortie. En outre, tout ce qui dérive de WebControl a une propriété Attributes et CssClass pour définir la mise en forme en fonction des feuilles de style que vous pouvez utiliser.

La dernière méthode, la plus personnalisable, mais la plus difficile à maintenir et à modifier, consiste à remplacer la méthode Render de la partie web et à générer votre code HTML complètement à la main dans le composant WebPart. Alternativement, vous pouvez abandonner complètement cela et utiliser le SmartPart pour développer des contrôles utilisateur ASP.net à utiliser dans SharePoint, vous donnant les options pour utiliser les outils de conception Visual Studio pour mettre en forme vos contrôles sur le formulaire.

+0

Pour l'instant, vous avez sauvé ma santé mentale avec l'option LiteralControl. Il me suffit de produire immédiatement la partie web nécessaire. À plus long terme, comme il y a des composants WebPart plus complexes à construire, je vais essayer l'option SmartPart. – sonniesedge

1

Vous devez remplacer la méthode Render(). Par défaut, cette méthode restitue simplement tous les contrôles enfants que vous avez ajoutés dans la méthode CreateChildControls(), mais en la remplaçant, vous pouvez écrire des éléments HTML supplémentaires autour des contrôles.

I Code habituellement en C#, mais je pense que l'exemple suivant devrait fonctionner en VB:

Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter) 
    writer.Write("<h1>Custom webpart rendering</h1>") 
    me.mylabel.RenderControl(writer) 
    writer.Write("<br />") 
    me.myTextbox.RenderControl(writer) 
End Sub 

Lui donner un essai ...

1

je développe des pièces web pour un ASP. Site NET utilisant le modèle standard de contrôle d'utilisateur Web, qui vous donne accès au concepteur VS et signifie que votre interface utilisateur peut être du HTML standard. ASP.NET encapsule ensuite UserControl dans un GenericWebPart à l'exécution pour l'héberger dans un site WebParts.

Je sais que Sharepoint ne supporte pas ce modèle de la boîte, mais je viens de trouver ce qui pourrait vous aider ...

http://weblogs.asp.net/jan/archive/2006/12/02/announcing-the-return-of-the-smartpart.aspx

0

Smart Part (ou une variante de celui-ci) est le moyen le plus facile d'aller. Pourquoi se tromper avec le rendu html direct lorsque vous pouvez développer un contrôle utilisateur plus facilement?

De plus, si vous n'êtes pas un expert en VB, ayant Designer Visual Studio va aider à créer des contrôles utilisateur

0

Merci pour toutes les réponses. Je suis allé avec la solution EvilGoatBobs comme le plus facile à mettre en œuvre immédiatement.

Ceci est ma première fois sur StackOverflow et vos réponses utiles en ont fait une très bonne introduction au site! :)

Questions connexes