문제

SharePoint 내에 목록이 있고 사용자 정의 새 양식을 사용하여 사용자 정의 목록 양식 컨트롤 (목록의 "새 항목 양식")을 추가하고 SaveButton을 표준 입력 HTML 버튼으로 변경하고 'Onclick'이벤트를 추가했습니다. 다음과 같이 :

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

이것은 데이터를 저장하고 newFormWizard2.aspx? id = page로 리디렉션하는 것처럼 작동합니다.

생성 된 항목의 ID를 리디렉션 된 페이지로 전달하려면 어떻게해야합니까?

따라서 양식이 완료되면 NewFormWizard2.aspx? id = 23으로 리디렉션됩니다.

도움이 되었습니까?

해결책 5

Pure JavaScript (jQuery)와 Spapi 코드를 사용하여 접근 방식을 찾았습니다. http://darrenjohnstone.net/.

이 목록에는 제목과 바디 코피의 두 분야가 포함되어 있습니다

제목과 질문을 텍스트 필드 (텍스트 필드) 모두 묻는 양식을 작성한 다음 제출 버튼은 다음 기능을 호출합니다.

그런 다음이 함수는 list.asmx 내에서 SOAP 서비스를 사용하여 세부 사항을 업로드하고 응답을 사용하면 새 항목의 ID를 가져오고 페이지를 리디렉션합니다.

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;
    }
}

다른 팁

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,'}'))}" />

JavaScript를 호스팅하는 페이지에 ID가 어디에 있는지 잘 모르겠습니다. 쿼리 스트링 또는 페이지의 필드에 나타나나요?

요청이나 응답에는 항목을 식별 할 것이 없습니다. 웹로드 테스트를 할 때이 문제가있었습니다.

웹 서비스를 사용하여 항목을 작성하여 XML을 반환 할 것을 제안 할 수 있습니다.

이 답변은 "새 형식"문제를 해결하지는 않지만 기존 목록 항목이 포함 된 화면의 구문을 가진 다른 사람들에게 도움이 될 수 있습니다.

SharePoint (Moss 2007) 환경에서 이것을 신속하게 테스트했습니다.

onclick = "javaScript : {ddwrt : genfireserVerevent ( '__ commit; __ relirect = {newformWizard2.aspx? id =',/dsqueryResponse/rows/row/@id))}"

Concat Syntax는 프로세서가 단일 따옴표로 둘러싸인 값을 결합하도록 지시하는 XSLT 명령어입니다. 여기에서 찾은 정보 에서이 답변을 조정했습니다.

사용자 정의 목록 양식의 값을로드합니다http://wssdevelopment.blogspot.com/2007_04_01_archive.html

1- SharePoint Designer에서 새 페이지를 작성하고 "ostiTem.aspx"를 호출하고 대상 목록 항목에 대한 단일 양식보기가 포함 된 데이터 뷰를 배치하십시오. 2- 리메이트 페이징은 하나의 레코드로 단 하나의 레코드로 정렬을 설정하고 내림차순으로 설정하고 목록을 필터링하여 [현재 사용자]가 만든 항목을 표시합니다. 3-이 페이지에 쿼리 문자열을 전달할 필요가 없습니다. 목록의 newform.aspx에서 기본 "OK"버튼을 표준 HTML 입력 버튼으로 바꾸고 정의에 이것을 추가하여 "onclick ="javaScript : {ddwrt : genfireserVerevent ( '__ commit; __ redirect = {ostitem.aspx} ". 목록에 새 항목을 제출 한 후에는 생성 된 항목의 편집보기로 리디렉션됩니다. Save 버튼을 클릭 한 후 다른 페이지로 리디렉션하기 위해 Save Button에 대해서도 동일한 작업을 수행 할 수 있습니다.

JavaScript를 사용하여이를 달성 할 수 있습니다 http://www.sharepointdrive.com/blog/lists/posts/post.aspx?id=9

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top