我看到的所有調用URL字段以顯示爲圖像的例子都是通過C#代碼實現的。這是非常煩人的,因爲大多數Web部分位都可以在不使用C#代碼的情況下編寫。您可能還需要沿着這條路走下去......也許是一個自定義的現場控制或用戶控制。
即使上面的代碼中的確得到了HeaderImageUrl值時,它會無法正常工作地址值(容易混淆):
[實際的URL指定] [某些奇怪的分隔符字符串] [描述的領域的網址(通常是實際的網址,如果你沒有指定它的話)]
所以你需要分割字符串與德爾米的值,並使用[0](第一)作爲你注入到圖像網址。
如果你找到一種方法來做到這一點,而不寫C#代碼請做後。
p.s.您是否考慮過使用具有xsl部分的DataFormWebPart,您可以在其中提取所需的內容?
例子:你可以堅持以下語法到任何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>
我不想使用DataFormWebPart的原因之一是因爲它需要SharePoint Designer。我希望將我部署的所有內容都放在一個解決方案中。 – 2010-02-15 20:14:26
嘿, 您不需要SharePoint Designer創建DataFormWebPart。您可以將DataFormWebPart語法添加到任何ascx或aspx文件,包括您可能部署的任何頁面佈局。看看我對我的帖子所做的修改。 – Zeb 2010-02-16 09:28:44