Frage

Ich habe eine Liste in Sharepoint, ein benutzerdefinierten neues Formular ich ein benutzerdefinierte Liste Formular-Steuerelement hinzugefügt habe ( „Neue Element Form“ für die Liste) und änderte die Savebutton auf eine Standardeingabe HTML-Schaltfläche, und fügte hinzu, einen ‚Onclick‘ Ereignis, das sich wie folgt:

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

Dies funktioniert wie in die Daten speichert und leitet auf die NewFormWizard2.aspx? Id = Seite.

Wie kann ich die ID des erstellten Artikel erhalten auf die umgeleitet Seite übergeben werden?

So, sobald das Formular vollständig ausgefüllt ist es NewFormWizard2.aspx umleiten würde? Id = 23

War es hilfreich?

Lösung 5

gefunden, einen Ansatz unter Verwendung von reinem Javascript (jQuery) und den SPAPI Code von http://darrenjohnstone.net/ .

Die Liste enthält zwei Felder, Titel und BodyCopy

Ich habe thewn erstellt ein Formular, das für einen Titel und eine Frage, beide Textfelder, dann ist die Submit-Button ruft die folgende Funktion fragt:. (Beachten Sie, dass Serveraddress und LIST_question aktualisiert werden müssen, um Ihre eigenen Details)

Die Funktion lädt dann die Details der SOAP-Dienst innerhalb Lists.asmx und unter Verwendung der Antwort die ID des neuen Elements wird und leitet die Seite an.

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

Andere Tipps

jtherkel war knapp, aber fehlte eine ‚}‘ am Ende der Umleitungs-URL. Früher habe ich eine zusätzliche concat unter

<input type="button" value="Submit" name="btnSave" onclick="javascript: {ddwrt:GenFireServerEvent(concat('__commit;__redirect={lists/MyListName/DispForm.aspx?ID=',/dsQueryResponse/Rows/Row/@ID,'}'))}" />

Ich bin nicht sicher, wo die ID auf der Seite vorhanden sind werden Sie die Javascript Host aus. Ist es in der Abfragezeichenfolgeflag oder auf einem Feld auf der Seite erscheinen?

Es gibt nichts in der Anfrage oder Antwort, die das Element identifiziert. Ich habe dieses Problem hatte, als einige Web loadtesting tun.

mit den Webdiensten wie

Ich kann nur empfehlen, das das Element erstellen zu gibt Ihnen eine Rückkehr xml.

Diese Antwort löst nicht das „neue Form“ Problem, aber es könnte andere mit der Syntax für Bildschirme helfen, die bestehenden Listenelemente enthalten.

Getestet habe ich diese schnell in meinen Sharepoint (MOSS 2007) Umwelt.

Onclick = "javascript: {ddwrt: GenFireServerEvent (concat ( '? __ begehen; __ Umleitung = {NewFormWizard2.aspx id =' / dsQueryResponse / Zeilen / Reihen / @ ID))}"

Die Concat Syntax ist ein XSLT-Befehl, der den Prozessor teilt die Werte in einfachen Anführungszeichen zu kombinieren. Ich angepasst diese Antwort von Informationen, die ich hier gefunden.

Laden Werte in einem benutzerdefinierten Liste Formular http://wssdevelopment.blogspot.com/2007_04_01_archive.html

Ich hoffe, das hilfreich sein würde: 1- In Sharepoint Designer erstellen Sie neue Seite, nennen Sie es zum Beispiel „LastItem.aspx“ und ein Dataview auf sie mit einem einzigen Formularansicht für die Zielliste Artikel platzieren. 2-Limit-Paging auf nur eine Aufzeichnung, eingestellt um das Sortieren von ID und absteigenden und filtert die Liste nur Artikel zu zeigen, die durch [current user] erstellt wird. 3-Jetzt brauchen Sie kein Abfrage-String zu dieser Seite zu übergeben. ersetzen Sie einfach die Standard-Schaltfläche "OK" in NewForm.aspx der Liste mit einer Standard-HTML-Eingabetaste und fügen Sie diese zu seiner Definition "Onclick =" javascript: {ddwrt: GenFireServerEvent (concat ( '__ begehen; __ Umleitung = {LastItem.aspx} .“nach einem neuen Objekt Vorlage Sie zur Liste wird zu einer Bearbeitungsansicht des erstellten Artikels weitergeleitet. Sie können das gleiche tun Knopf in LastItem.aspx sparen für nach dem Klick auf Speichern, um auf eine andere Seite umgeleitet werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top