2016-03-17 5 views
1

Я создаю сайт SharePoint и хотел бы получить некоторую помощь. На моей домашней странице мне нужна кнопка, где кто-то может щелкнуть, чтобы добавить информацию, и нажав кнопку, которую я хотел бы открыть для модального окна. После того, как окно откроется, оно должно побудить людей вводить информацию и сохранять ее в списке где-то в фоновом режиме. Я сделал несколько поисковых запросов и не смог найти это. Пока я пробовал этот javascript, который я нашел в google, но я не мог заставить его работать. Вы увидите javascript ниже, а ниже вы найдете ссылку imgur, чтобы лучше показать, что я пытаюсь выполнить.Создание кнопки «Добавить новый элемент» в SharePoint 2010

http://imgur.com/a/GWgNM

<script type='text/javascript'> 
    function OpenNewForm() { 
     var listName = 'MyListUrl'; 
     var options = 
     { 
      url: L_Menu_BaseUrl + "/Lists/" + listName + "/EditForm.aspx?ID=1&IsDlg=1", 
      dialogReturnValueCallback: Function.createDelegate(null,newFormClosedCallback) 
     }; 

     SP.UI.ModalDialog.showModalDialog(options); 
    } 

    function newFormClosedCallback(result, target) { 
     if (result === SP.UI.DialogResult.OK) { 
      SP.UI.Notify.addNotification("List item was added.", false); 
     } 

     if (result === SP.UI.DialogResult.cancel) { 
      SP.UI.Notify.addNotification("Add new item was cancelled.", false); 
     } 
    } 
</script> 
<input value='add a new item' type='button' onclick='OpenNewForm();' id='btnNewForm' />  
+0

Можете ли вы быть более конкретными с тем, почему этот код "не работает"? Как вы используете этот скрипт, ссылаетесь ли вы на него в jslink или фрагменте кода? –

+0

Я помещал этот код в редактор контента, и он делает кнопку, но при нажатии этой кнопки он дает мне ошибку 404. Я не уверен, почему он это делает. Теперь это может быть из-за того, что я не уверен, где я должен делать изменения (то есть где разместить информацию для моего списка, такую ​​как имя и URL-адрес списка). Если это сработает, я буду рад использовать его, но я не слишком уверен, где мне нужно редактировать. – MGPinho

+0

Вы можете разместить список в любом месте. Кнопка просто нуждается в перенаправлении к editform.aspx для этого списка. –

ответ

0

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

 function openNewForm() { 
     var listName = 'DisplayTitleOfYourList'; 
     var options = 
     { 
      url: _spPageContextInfo.webAbsoluteUrl + "/Lists/" + listName + "/NewForm.Aspx", 
      dialogReturnValueCallback: Function.createDelegate(null,newFormClosedCallback) 
     }; 

     SP.UI.ModalDialog.showModalDialog(options); 
    } 

    function newFormClosedCallback(result, target) { 
     if (result === SP.UI.DialogResult.OK) { 
      SP.UI.Notify.addNotification("List item was added.", false); 
     } 

     if (result === SP.UI.DialogResult.cancel) { 
      SP.UI.Notify.addNotification("Add new item was cancelled.", false); 
     } 
    } 
<input value='add a new item' type='button' onclick='openNewForm();' id='btnNewForm' /> 

В зависимости от того, как ваш сайт и страницы настроены, вы не можете быть в состоянии выполнить JavaScript непосредственно из редактора содержимого или редактора сценария веб-части. Я всегда рекомендую привязывать javascript к странице с помощью JS Link, потому что я чувствую, что она намного чище и удобнее в управлении. Посмотреть эти сообщения для получения дополнительной информации:

https://sharepoint.stackexchange.com/questions/93627/the-xss-auditor-refused-to-execute-a-script-in-from-chrome-when-using-scri

https://sharepoint.stackexchange.com/questions/98583/javascript-in-content-editor-web-part-not-working-after-publishing-the-pageJavascript not working in web part

https://sharepoint.stackexchange.com/questions/119018/how-do-you-use-js-link-with-pages

+0

Спасибо, Алекс, я собираюсь попробовать! Нужно ли мне указывать URL-адрес или название в любом месте этого кода? – MGPinho

+0

Если список находится на одном сайте (не уверен в иерархии вашего сайта), то, используя приведенный выше код, вам нужно будет предоставить только заголовок отображения списка, где у меня есть 'var listName = 'DisplayTitleOfYourList''. Или, вы можете жестко закодировать полный список. –

+0

Отлично, и еще раз большое спасибо за вашу помощь. – MGPinho