2013-05-20 3 views
0

Я работаю над настройкой панели инструментов проекта с помощью настраиваемого списка. Это все в браузере, и я считаю, что это 2007 год, но я не знаю, как точно сказать. Один из столбцов - «Стоп-сигнал проекта». Поле является гиперссылкой, а в описании это ссылка на изображение зеленого, желтого или красного круга, чтобы обозначить статус проекта. При создании нового элемента пользователь копирует и вставляет соответствующую гиперссылку в поле гиперссылки, чтобы указать, какое изображение показано. Мне нужен способ сортировки по стоп-сигналу (все зеленые, желтые и красные проекты сгруппированы вместе). У кого-нибудь есть идеи о том, как я могу это сделать?В Sharepoint, как я могу отсортировать список на основе гиперссылки?

ответ

0

Я, наконец, понял, как это сделать. По существу, я создал два столбца: Статус проекта (I) и Статус проекта (S) (первое означает изображение, второе - для строки). В столбце Статус проекта (I) отображаются изображения, основанные на том, что пользователь выбирает в категории Статус проекта (S) при создании нового элемента. Это достигается с помощью вычисляемого столбец (Project Status (I)) и следующая формулу кода:

=IF([Project Status (String)]="Green","<DIV><img src='/Site%20Pictures/grn.jpg'/></DIV>",IF([Project Status (String)]="Yellow","<DIV><img src='/Site%20Pictures/yel.jpg'/></DIV>",IF([Project Status (String)]="Red","<DIV><img src='/red.jpg'/></DIV>","Error"))) 

По сути, это HTML-скрипт, который тянет изображение из Интернета, если соблюдены правильные условия (например, если проект Статус (S) = Зеленый и т. Д.). Однако SharePoint не отображает HTML-скрипт в вычисленном столбце. Вы заметите, что при создании нового представления отображается код, а не изображение. Чтобы получить изображение, JavaScript должен быть встроен в веб-страницу. Это было достигнуто путем создается Content Editor Web Part, редактирование источника и вставив следующий код:

<script type="text/javascript"> 
// 
// Text to HTML 
// Feedback and questions: [email protected] 
// 
var theTDs = document.getElementsByTagName("TD"); 
var i=0; 
var TDContent = " "; 
while (i < theTDs.length) { 
try { 
TDContent = theTDs[i].innerText || theTDs[i].textContent; 
if ((TDContent.indexOf("<DIV") == 0) && (TDContent.indexOf("</DIV>") >= 0)) { 
theTDs[i].innerHTML = TDContent; 
} 
} 
catch(err){} 
i=i+1; 
} 
// 
// ExpGroupRenderData overwrites the default SharePoint function 
// This part is needed for collapsed groupings 
// 
function ExpGroupRenderData(htmlToRender, groupName, isLoaded) { 
var tbody=document.getElementById("tbod"+groupName+"_"); 
var wrapDiv=document.createElement("DIV"); 
wrapDiv.innerHTML="<TABLE><TBODY id=\"tbod"+ groupName+"_\" isLoaded=\""+isLoaded+ "\">"+htmlToRender+"</TBODY></TABLE>"; 
var theTBODYTDs = wrapDiv.getElementsByTagName("TD"); var j=0; var TDContent = " "; 
while (j < theTBODYTDs.length) { 
try { 
TDContent = theTBODYTDs[j].innerText || theTBODYTDs[j].textContent; 
if ((TDContent.indexOf("<DIV") == 0) && (TDContent.indexOf("</DIV>") >= 0)) { 
theTBODYTDs[j].innerHTML = TDContent; 
} 
} 
catch(err){} 
j=j+1; 
} 
tbody.parentNode.replaceChild(wrapDiv.firstChild.firstChild,tbody); 
} 
</script> 

Этот код был скопирован из интернета. Я сам не писал. Из обзора его, кажется, намного сложнее, чем нужно, но он работает, пока ваш HTML окружен, он преобразует HTML в то, как он должен выглядеть.

-1

Вы можете создать другой вычисленный столбец и на основе значения изображения в поле гиперссылки, вы можете установить статус текста в этом вычисленном поле. Как только это будет сделано, вы можете легко отсортировать или сгруппировать по этому столбцу.

+0

Я пробовал это, но он, похоже, не позволял мне рассчитывать на основе гиперссылки. – rphello101

Смежные вопросы