所以这就是我最终做的......
我在最初的尝试中基本上执行了上面的步骤 1 和 2,并将整个站点模板导出到我工作站上的本地文件中。然后,我在 Visual Studio 中创建了一个新的 SharePoint 项目/解决方案(以免弄乱我现有的项目),选择从现有网站模板导入数据并仅选择sdList以导入我的新解决方案。
导入过程完成后,我可以查看为 AllItem.aspx 生成的源代码(其中包含我使用 SPD 手动更新的 XSL 代码),然后将该代码复制到 Schema.xml 文件中vsList在我现有的 SharePoint 解决方案中。
在 Schema.xml 文件的 View 部分中,我在 BaseViewID #1 的标记之后添加了标记(即 AllItems.aspx 视图)并将代码粘贴在那里。
在理想情况下,我宁愿将所有 Xsl 代码转储到外部文件中,然后只使用标签,但我无法让它工作。由于某种原因,SharePoint 无法找到该文件。这是我对 SharePoint 的不满之一(如我原来的帖子中所述):文件夹映射和文件位置。不必要的混乱。
对于那些感兴趣的人,这里是自定义 Xsl 的样子。查找带有“CustomUpload.aspx”的行以及紧接在它之前和之后的行。不幸的是,我无法在此编辑器中加粗或突出显示代码部分,因此您必须自己进行一些调查。
<Xsl>
<![CDATA[
<xsl:stylesheet xmlns:x="http://www.w3.org/2001/XMLSchema" xmlns:d="http://schemas.microsoft.com/sharepoint/dsp" version="1.0" exclude-result-prefixes="xsl msxsl ddwrt" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime" xmlns:asp="http://schemas.microsoft.com/ASPNET/20" xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:SharePoint="Microsoft.SharePoint.WebControls" xmlns:ddwrt2="urn:frontpage:internal" xmlns:o="urn:schemas-microsoft-com:office:office">
<xsl:include href="/_layouts/xsl/main.xsl"/>
<xsl:include href="/_layouts/xsl/internal.xsl"/>
<xsl:param name="AllRows" select="/dsQueryResponse/Rows/Row[$EntityName = '' or (position() >= $FirstRow and position() <= $LastRow)]"/>
<xsl:param name="dvt_apos">'</xsl:param>
<xsl:template name="Freeform" ddwrt:ghost="" xmlns:ddwrt2="urn:frontpage:internal">
<xsl:param name="AddNewText"/>
<xsl:param name="ID"/>
<xsl:variable name="Url">
<xsl:choose>
<xsl:when test="List/@TemplateType='119'"><xsl:value-of select="$HttpVDir"/>/_layouts/CreateWebPage.aspx?List=<xsl:value-of select="$List"/>&RootFolder=<xsl:value-of select="$XmlDefinition/List/@RootFolder"/></xsl:when>
<xsl:when test="$IsDocLib"><xsl:value-of select="$HttpVDir"/>/_layouts/Upload.aspx?List=<xsl:value-of select="$List"/>&RootFolder=<xsl:value-of select="$XmlDefinition/List/@RootFolder"/></xsl:when>
<xsl:otherwise><xsl:value-of select="$ENCODED_FORM_NEW"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="HeroStyle">
<xsl:choose>
<xsl:when test="Toolbar[@Type='Standard']">display:none</xsl:when>
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="$ListRight_AddListItems = '1' and (not($InlineEdit) or $IsDocLib)">
<table id="Hero-{$WPQ}" width="100%" cellpadding="0" cellspacing="0" border="0" style="{$HeroStyle}">
<tr>
<td colspan="2" class="ms-partline">
<img src="/_layouts/images/blank.gif" width="1" height="1" alt="" />
</td>
</tr>
<tr>
<td class="ms-addnew" style="padding-bottom: 3px">
<span style="height:10px;width:10px;position:relative;display:inline-block;overflow:hidden;" class="s4-clust"><img src="/_layouts/images/fgimg.png" alt="" style="left:-0px !important;top:-128px !important;position:absolute;" /></span>
<xsl:text disable-output-escaping="yes" ddwrt:nbsp-preserve="yes">&nbsp;</xsl:text>
<xsl:choose>
<xsl:when test="List/@TemplateType = '115'">
<a class="ms-addnew" id="{$ID}-{$WPQ}"
href="{$Url}"
onclick="javascript:NewItem2(event, "{$Url}");javascript:return false;"
target="_self">
<xsl:value-of select="$AddNewText" />
</a>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="CustomUrl">
../../../_layouts/MyControls/CustomUpload.aspx?List=<xsl:value-of select="$List"/>
</xsl:variable>
<a href="{$CustomUrl}"><xsl:value-of select="$AddNewText" /></a>
</xsl:otherwise>
</xsl:choose>
</td>
</tr>
<tr>
<td>
<img src="/_layouts/images/blank.gif" width="1" height="5" alt="" />
</td>
</tr>
</table>
<xsl:choose>
<xsl:when test="Toolbar[@Type='Standard']">
<script type='text/javascript'>
if (typeof(heroButtonWebPart<xsl:value-of select="$WPQ"/>) != "undefined")
{
<xsl:value-of select="concat(' var eleHero = document.getElementById("Hero-', $WPQ, '");')"/>
if (eleHero != null)
eleHero.style.display = "";
}
</script>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="List/@TemplateType = '115'">
<script type='text/javascript'>
if (typeof(DefaultNewButtonWebPart<xsl:value-of select="$WPQ"/>) != "undefined")
{
<xsl:value-of select="concat(' var eleLink = document.getElementById("', $ID, '-', $WPQ, '");')"/>
if (eleLink != null)
{
DefaultNewButtonWebPart<xsl:value-of select="$WPQ"/>(eleLink);
}
}
</script>
</xsl:if>
</xsl:if>
</xsl:template></xsl:stylesheet>
]]>
</Xsl>
无论如何,我希望这可以帮助某人。