Переадресация списка Sharepoint с новым идентификатором - PullRequest
5 голосов
/ 29 апреля 2009

У меня есть список в Sharepoint, используя настраиваемую новую форму, я добавил настраиваемый элемент управления формы списка («Форма нового элемента» для списка), изменил SaveButton на стандартную кнопку ввода HTML и добавил «onclick» событие, которое выглядит следующим образом:

onclick="javascript: {ddwrt:GenFireServerEvent('__commit;__redirect={NewFormWizard2.aspx?id=}')}"

Это работает как при сохранении данных и перенаправляет на страницу NewFormWizard2.aspx? Id =.

Как получить идентификатор созданного элемента для передачи на перенаправленную страницу?

Таким образом, после заполнения формы она будет перенаправлена ​​на NewFormWizard2.aspx? Id = 23

Ответы [ 6 ]

2 голосов
/ 19 марта 2010

jtherkel был близок, но в конце URL-адреса перенаправления отсутствовал '}'. Я использовал дополнительный конкат ниже

<input type="button" value="Submit" name="btnSave" onclick="javascript: {ddwrt:GenFireServerEvent(concat('__commit;__redirect={lists/MyListName/DispForm.aspx?ID=',/dsQueryResponse/Rows/Row/@ID,'}'))}" />
0 голосов
/ 11 октября 2009

Вы можете достичь этого, используя JavaScript http://www.sharepointdrive.com/blog/Lists/Posts/Post.aspx?ID=9

0 голосов
/ 25 августа 2009

нашел подход, используя чистый JavaScript (JQuery) и код SPAPI из http://darrenjohnstone.net/.

Список содержит два поля, title и BodyCopy

Я создал форму, которая запрашивает заголовок и вопрос, оба текстовых поля, затем кнопка отправки вызывает следующую функцию: (обратите внимание, что ServerAddress и LIST_question необходимо обновить до ваших собственных данных).

Затем функция загружает сведения с использованием службы SOAP в LISTS.ASMX и, используя ответ, получает идентификатор нового элемента и перенаправляет страницу.

var LIST_question = '{xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}';
var ServerAddress = 'http://xxx/';

function submitQuestion()
    {
    var title = new String($("#title").val());
    var t = new String($("#question").val());
    t=t.trim();
    if(t=="")
        return;

    title=title.trim();
    if(title=="")
        return;


    var lists = new SPAPI_Lists(ServerAddress) ;
    // 
    var newItem = { Title :  title, BodyCopy : t};
    var items = lists.quickAddListItem(LIST_question, newItem); 
    var id=-1; 
    if (items.status == 200) 
    { 
        var rows = items.responseXML.getElementsByTagName('z:row');
        if(rows.length ==1)
        {
            var r = rows[0];
            var id = r.getAttribute('ows_ID'); 
            window.location.href='DispForm.aspx?ID='+id;

        }
        else
        {
            alert("Error: No row added");
        }


    } 
    else
    { 

        alert('There was an error: ' + items.statusText); 
        return;
    }
}
0 голосов
/ 31 июля 2009

Надеюсь, это будет полезно: 1- В SharePoint Designer создайте новую страницу, назовите ее, например, «LastItem.aspx» и поместите в нее представление данных с одним представлением формы для элемента списка назначения. 2-Ограничить подкачку только одной записи, установить сортировку по ID и по убыванию и отфильтровать список, чтобы просто показать элемент, который создан [текущим пользователем]. 3-Теперь вам не нужно передавать какую-либо строку запроса на эту страницу. просто замените стандартную кнопку «ОК» в NewForm.aspx списка стандартной кнопкой ввода HTML и добавьте ее в определение «onclick =» javascript: {ddwrt: GenFireServerEvent (concat ('__ commit; __ redirect = {LastItem.aspx}) Msgstr ". После отправки нового элемента в список вы будете перенаправлены в окно редактирования созданного элемента. Вы можете сделать то же самое для кнопки сохранения в LastItem.aspx, чтобы перенаправить на другую страницу после нажатия кнопки сохранения.

0 голосов
/ 04 июня 2009

Этот ответ не решает проблему «новой формы», но может помочь другим с синтаксисом экранов, содержащих существующие элементы списка.

Я быстро протестировал это в своей среде SharePoint (MOSS 2007).

onclick = "javascript: {ddwrt: GenFireServerEvent (concat ('__ commit; __ redirect = {NewFormWizard2.aspx? Id =', / dsQueryResponse / Rows / Row / @ ID))}"

Синтаксис concat - это инструкция XSLT, которая указывает процессору объединять значения, заключенные в одинарные кавычки. Я адаптировал этот ответ из информации, которую нашел здесь.

Загрузка значений в пользовательской форме списка http://wssdevelopment.blogspot.com/2007_04_01_archive.html

0 голосов
/ 30 апреля 2009

Я не уверен, где будет существовать идентификатор на странице, с которой вы размещаете Javascript. Он появляется в строке запроса или в поле на странице?

В запросе или ответе нет ничего, что могло бы идентифицировать предмет. У меня была эта проблема при выполнении некоторых веб-нагрузочных тестов.

Я могу только предложить, чтобы вы создали элемент с помощью веб-сервисов, так как он дает вам некоторый возврат XML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...