Форма отображения, содержащая поле Lookup, открывает новое окно, как это изменить?

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/11263

Вопрос

В любом списке в SharePoint 2010, когда вы откроете представление о деталях для элемента списка, вам представлены форма отображения.

Если представление подробностей для элемента списка содержит поле поиска, оно отображается как гипер -ссылка.

Когда вы нажимаете на эту гипер -ссылку, она открывается в новом окне.

Есть ли в любом случае, вместо того, чтобы открывать в новом окне, скорее открыть другое всплывающее окно или даже перезагрузить оригинальное всплывающее окно?

Это заставило бы SharePoint больше похож на приложение, а не на веб -сайт.

Заранее спасибо.

Это было полезно?

Решение

Вы можете использовать jQuery, чтобы изменить поведение. Это основано на чем -то, что я сделал в 2007 году, но то же самое должно сохраняться в 2010 году. Он добавляет цель = пустой атрибут любому href, который заканчивается .msi. Вам просто нужно изменить селектор на соответствующий атрибут для поля поиска.

<script type="text/javascript" src="/Resources/jquery.js"></script>
<script type ="text/javascript">
 $(document).ready(function(){
   $("a[href$='.msi']").attr("target", "_self"); 
 });
</script>

Другие советы

Предпочтительным подходом к реализации это будет использование пользовательского шаблона рендеринга.

Шаблоны рендеринга представляют собой файлы ASCX в папке ControlTemplates, которые определяют, как формы SharePoint отображаются как на дисплее, так и в редактировании. Существуют шаблоны высокого уровня «форма» и очень низкие шаблоны, такие как «Textbox».

Для полей поля есть шаблон «Multiplelookupfield». Вы можете заменить этот шаблон своим собственным. В поле «Один поиск» не используется шаблоны рендеринга и не может быть заменено с помощью этого подхода напрямую. Вместо этого, если у вас есть управление шаблоном списка, вы можете связать шаблон списка с шаблоном рендеринга пользовательской формы (например, «Listform») и создать его с нуля. По сути, вам нужно будет скопировать все шаблоны по умолчанию, такие как Listform, Listfielditerator, Compositefield и Formfield. Это позволило бы вам изменить способ выполнения поля поиска путем реализации отображения поля самостоятельно. Это инвестиции среднего уровня, которая полностью поддерживается.

Далее вы можете попробовать сделать немного хитрости jQuery. Работает тоже, но это не подпадает, так как вы связываете нестандартные HTML-структуры, которые могут измениться в пакете обслуживания.

Чтобы узнать больше о шаблонах рендеринга, откройте defaulttemplates.ascx в папке ControlTemplates. Хотя о MSDN мало информации, но можно найти некоторые соответствующие темы.

Вутер

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top