В настоящее время я пытаюсь отобразить имя столбца в пользовательской форме в SharePoint Designer. Я использую Sharepoint 2013, поэтому дизайн-вид больше не существует :(. . Форма используется для создания нового элемента в настраиваемом списке. Я не могу положить имя непосредственно в tempate, потому что я хотел бы использовать этот шаблон в разных формах, поэтому Мне нужно восстановить имя столбца динамически. Проблема в том, что я нашел только внутреннее имя. Я видел в теге datafileds пары, где внутреннее имя зависит от отображаемого имени, но я не нашел, как восстановить отображаемое имя с этим тоже.Отображаемое имя столбца SharePoint XSLT
Является ли это только возможно? Кто-то представление о том, чтобы помочь мне?
Я поставил код, если и хотят, чтобы посмотреть на мой код. Эта часть ищет атрибут, в котором имя содержит «вопрос» и вызывает шаблон «title_line» при его обнаружении. Имя функции() дает мне внутреннее имя, то есть рь ...
<xsl:template match="Row">
<xsl:for-each select="@*">
<xsl:choose>
<xsl:when test="contains(name(),'Question')">
<xsl:call-template name="title_line" >
<xsl:with-param name="title" select="name()"/>
<xsl:with-param name="class" select="'class_title'"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:template>
Эта часть для отображения названия:
<xsl:template name="title_line" >
<xsl:param name="title" select="'no title'" />
<xsl:param name="class" select="'no_class'" />
<tr>
<td colspan ="2" class="{$class}" style="font-weight:bold;font-size:medium">
<xsl:value-of select="$title" />
</td>
</tr>
</xsl:template>
МОЕ РЕШЕНИЕ:
I используемые JQuery 1.9.0 и SPServices 0.7.2
Импортируйте эти библиотеки в заголовок. ContentPlacdeHolderId PlaceHolderAdditionalPageHead находится в нижней части страницы, я не видел его и имел некоторые проблемы из-за дубликата ...) Об источнике, я активировал публикацию и создаю папку Scripts в библиотеке стилей.
<asp:Content ContentPlaceHolderId="PlaceHolderAdditionalPageHead" runat="server">
<SharePoint:DelegateControl runat="server" ControlId="FormCustomRedirectControl" AllowMultipleControls="true"/>
<SharePoint:UIVersionedContent UIVersion="4" runat="server">
<ContentTemplate>
<SharePoint:CssRegistration Name="forms.css" runat="server"/>
<!-- add JQuery 1.9.0-->
<script id ="JQUERY_ID" type="text/javascript" src="../../Style%20Library/Scripts/jquery-1.9.0.js">
</script>
<!-- add SPServices 0.7.2 -->
<script id ="JQUERY_ID" type="text/javascript" src="../../Style Library/Scripts/jquery.SPServices-0.7.2.js">
</script>
</ContentTemplate>
</SharePoint:UIVersionedContent>
</asp:Content>
Теперь дисплей названия является:
<xsl:template name="title_line" >
<xsl:param name="title" select="'no title'" />
<xsl:param name="class" select="'no_class'" />
<tr>
<td colspan ="2" class="{$class}" style="font-weight:bold;font-size:medium">
<script type="text/javascript">
var static_name = '<xsl:value-of select="$title" />';
var display_name = $().SPServices.SPGetDisplayFromStatic ({
listName: "listeperso",
columnStaticName: static_name
});
document.write(display_name);
</script>
</td>
</tr>
</xsl:template>
мне просто нужно иметь имя списка динамически, и это закончилось.
Cya.
EDIT: сценарий с именем списка динамически
<script type="text/javascript">
var list_name = $().SPServices.SPListNameFromUrl();
var static_name = '<xsl:value-of select="$title" />';
var display_name = $().SPServices.SPGetDisplayFromStatic ({
listName : list_name,
columnStaticName: static_name
});
document.write(display_name);
</script>
ИМЯ_СПИСКА использует либо имя списка либо список ID. SPListNameFromUrl возвращает идентификатор списка.