Лучший отвечающий
Нумерация строк в списке

Вопрос
-
Здравствуйте, есть список, который забирает данные с другого списка, в том числе и ИД, к нему необходимо прикрепить нумерация строк по порядку, при этом чтобы при удалении элемента из списка нумерация сохранялась. как реализовать данную нумерацию?14 июля 2014 г. 10:40
Ответы
-
К сожалению, я не силен в XSL, поэтому опишу только примерное направление куда копать без работающего примера, т.к. для экспериментов особо нет времени.
В общем задача состоит из двух этапов.
1. Написать XSL файл, который будет использоваться для рендеринга
2. Заставить шарик при рендеринге использовать ваш кастомный XSL.
Для первого этапа в библиотеке стилей (или другом месте) создаем XSL файл со следующим содержимым.
<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:template name="RowNumber" match="FieldRef[@Name='ID']" mode="body"> <a href="http://google.com">Google</a> </xsl:template> </xsl:stylesheet>
Этот файл будет рендерить все поля за исключением поля ID стандартными средствами. А вместо поля ID будет рендериться ссылка на Гугл.
2. Добавляем в наше представление списка показ поля ИД (для того, чтобы проверить как оно будет рендериться). Затем, для того, чтобы Шарик подхватил наш файл, заходим на страницу с представлением списка в режим редактирования и далее в настройки вэб-части списка. Там в самом низу в разделе Разное есть поле "Ссылка на XSL", в которое надо вставить ссылку на созданный нами файл. После сохранения страницы у нас везде в поле ИД должна быть ссылка на Гугл.
Ну а дальше наступает собственно подгонка XSL, в которой я не силен. Возможно прокатит замена в лоб тега А, который ссылается на Гугл на <xsl:value-of select="position()"/>, но не факт, т.к. надо еще позаботиться о контексте, в котором будет вызываться этот участок. Попробуйте, поэкспериментируйте, возможно что-то получится.
PS: у вас SharePoint 2010? Или 2013?
- Изменено MikhailSP 14 июля 2014 г. 15:33
- Предложено в качестве ответа Иван ПродановMicrosoft contingent staff, Moderator 15 июля 2014 г. 5:01
- Помечено в качестве ответа Иван ПродановMicrosoft contingent staff, Moderator 16 июля 2014 г. 5:05
14 июля 2014 г. 15:31
Все ответы
-
Если я правильно понял вопрос, то вы можете просто использовать поле ИД списка. Для этого сделайте его видимым в настройках представления.14 июля 2014 г. 10:48
-
Не совсем так, поле ИД используется как номер заявки, а мне необходимо сделать построчную нумерацию, наглядный пример
ИД
2456
2435
1234
2314
А нужно чтобы была нумерация этих строк
№ ИД
1 2456
2 2435
3 1234
4 2314
14 июля 2014 г. 10:58 -
В этом случае вы можете посмотреть в сторону доработки XSLT:
Use SharePoint List row number
Либо если это SharePoint 2013, вы можете использовать JSLink для рендеринга списка.
Using JSLink to change the UI of a SharePoint list/viewА так вообще не уверен, что это хорошая идея показывать номер строки. Проблема в том, что нумерация будет разная при разных параметрах фильтров, что может вызвать путаницу. Могли бы вы сказать для каких целей планируете использовать нумерацию? Возможно сможем предложить какое-то более подходящее решение.
14 июля 2014 г. 11:15 -
спасибо за ваш ответ, но мне как и предыдущему интересующемуся данным вопросом непонятно куда вставлять кусок данного кода, в SH Designer, помогите разобраться14 июля 2014 г. 12:50
-
К сожалению, я не силен в XSL, поэтому опишу только примерное направление куда копать без работающего примера, т.к. для экспериментов особо нет времени.
В общем задача состоит из двух этапов.
1. Написать XSL файл, который будет использоваться для рендеринга
2. Заставить шарик при рендеринге использовать ваш кастомный XSL.
Для первого этапа в библиотеке стилей (или другом месте) создаем XSL файл со следующим содержимым.
<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:template name="RowNumber" match="FieldRef[@Name='ID']" mode="body"> <a href="http://google.com">Google</a> </xsl:template> </xsl:stylesheet>
Этот файл будет рендерить все поля за исключением поля ID стандартными средствами. А вместо поля ID будет рендериться ссылка на Гугл.
2. Добавляем в наше представление списка показ поля ИД (для того, чтобы проверить как оно будет рендериться). Затем, для того, чтобы Шарик подхватил наш файл, заходим на страницу с представлением списка в режим редактирования и далее в настройки вэб-части списка. Там в самом низу в разделе Разное есть поле "Ссылка на XSL", в которое надо вставить ссылку на созданный нами файл. После сохранения страницы у нас везде в поле ИД должна быть ссылка на Гугл.
Ну а дальше наступает собственно подгонка XSL, в которой я не силен. Возможно прокатит замена в лоб тега А, который ссылается на Гугл на <xsl:value-of select="position()"/>, но не факт, т.к. надо еще позаботиться о контексте, в котором будет вызываться этот участок. Попробуйте, поэкспериментируйте, возможно что-то получится.
PS: у вас SharePoint 2010? Или 2013?
- Изменено MikhailSP 14 июля 2014 г. 15:33
- Предложено в качестве ответа Иван ПродановMicrosoft contingent staff, Moderator 15 июля 2014 г. 5:01
- Помечено в качестве ответа Иван ПродановMicrosoft contingent staff, Moderator 16 июля 2014 г. 5:05
14 июля 2014 г. 15:31