Tous les exemples que j'ai vus d'appeler un champ d'URL à afficher comme une image ont été à travers le code C#. Ce qui est assez ennuyeux puisque la plupart des bits de partie web peuvent être écrits sans utiliser le code C#. Vous pourriez également devoir suivre cette route ici ... peut-être un contrôle de champ personnalisé ou un contrôle d'utilisateur.
Même si votre code ci-dessus a obtenir la valeur pour HeaderImageUrl, cela ne fonctionnerait pas comme des valeurs d'URL sont (confusément):
[l'URL spécifiée] [une chaîne de délimiteur wierd] [le champ de description de l'url (habituellement l'url à nouveau si vous ne le spécifiez pas)]
Vous devrez donc diviser la chaîne avec les valeurs delimeter et utiliser le [0] (le premier) comme ce que vous injectez dans votre image url.
Veuillez publier si vous trouvez un moyen de le faire sans écrire le code C#.
p.s. Avez-vous envisagé d'utiliser un DataFormWebPart qui a une section xsl dans laquelle vous pourriez faire extraire ce dont vous avez besoin ?!
Exemple: Vous pouvez coller la syntaxe suivante dans un fichier ASPX/ascx:
<%@ Register tagprefix="SharePoint" namespace="Microsoft.SharePoint.WebControls" assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register tagprefix="WebPartPages" namespace="Microsoft.SharePoint.WebPartPages" assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="PublishingWebControls" Namespace="Microsoft.SharePoint.Publishing.WebControls" Assembly="Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<WebPartPages:DataFormWebPart runat="server" IsIncluded="True" FrameType="None"
NoDefaultStyle="TRUE" ViewFlag="0" Title="My List Display"
Default="FALSE" ID="dfwp_MyListDisplay"
DisplayName="My List Display">
<DataSources>
<SharePoint:SPDataSource runat="server" DataSourceMode="List" UseInternalName="true"
selectcommand='<View><Query><Where><Eq><FieldRef Name="Category"/><Value Type="Text">Header</Value></Eq></Where></Query></View>' id="Utility_x0020_Navigation1"><SelectParameters><WebPartPages:DataFormParameter Name="ListName" ParameterKey="ListName" PropertyName="ParameterValues" DefaultValue="My List Display"/>
<asp:Parameter Name="ListName" DefaultValue="LIST NAME" />
<asp:Parameter Name="WebUrl" DefaultValue="<% $SPUrl:~SiteCollection/ %>" />
</SelectParameters>
</SharePoint:SPDataSource>
</DataSources>
<ParameterBindings>
<ParameterBinding Name="dvt_apos" Location="Postback;Connection"/>
<ParameterBinding Name="PageURL" Location="ServerVariable(URL)" DefaultValue=""/>
<ParameterBinding Name="SiteUrl" Location="ServerVariable(SERVER_NAME)" DefaultValue=""/>
</ParameterBindings>
<datafields>@Title,Title;@URL,URL;@Category,Category;@Parent_x0020_item,Parent_x0020_item;@Sort_x0020_Order,Sort Order;@ID,ID;@ContentType,Content Type;@Modified,Modified;@Created,Created;@Author,Created By;@Editor,Modified By;@_UIVersionString,Version;@Attachments,Attachments;@File_x0020_Type,File Type;@FileLeafRef,Name (for use in forms);@FileDirRef,Path;@FSObjType,Item Type;@_HasCopyDestinations,Has Copy Destinations;@_CopySource,Copy Source;@ContentTypeId,Content Type ID;@_ModerationStatus,Approval Status;@_UIVersion,UI Version;@Created_x0020_Date,Created;@FileRef,URL Path;</datafields>
<xsl>
YOUR XSLT HERE
</xsl>
</WebPartPages:DataFormWebPart>
L'une des raisons pour lesquelles je ne souhaite pas utiliser DataFormWebPart est qu'il nécessite SharePoint Designer. Je veux que tout ce que je déploie soit dans une (des) solution (s). –
Hey, Vous n'avez pas besoin de SharePoint Designer pour créer un DataFormWebPart. Vous pouvez simplement ajouter la syntaxe DataFormWebPart à n'importe quel fichier ascx ou aspx, y compris les mises en page que vous pourriez déployer. Jetez un oeil à la modification que j'ai apportée à mon message. – Zeb