Domanda

Ho un elenco all'interno di Sharepoint, utilizzando un nuovo modulo personalizzato ho aggiunto un controllo modulo elenco personalizzato (" Nuovo modulo elemento " per l'elenco) e ho cambiato il SaveButton in un pulsante HTML di input standard e ho aggiunto un 'onclick "evento che è il seguente:

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

Funziona come in salva i dati e reindirizza alla pagina NewFormWizard2.aspx? id =.

Come posso ottenere l'ID dell'elemento creato da passare alla pagina reindirizzata?

Quindi, una volta completato, il modulo verrebbe reindirizzato a NewFormWizard2.aspx? id = 23

È stato utile?

Soluzione 5

trovato un approccio usando javascript puro (JQuery) e il codice SPAPI da http://darrenjohnstone.net/ .

L'elenco contiene due campi, titolo e BodyCopy

Ho creato un modulo che richiede un titolo e una domanda, entrambi i campi di testo, quindi il pulsante di invio chiama la seguente funzione: (nota che ServerAddress e LIST_question devono essere aggiornati ai tuoi dettagli).

La funzione carica quindi i dettagli usando il servizio SOAP in LISTS.ASMX e usando la risposta ottiene l'ID del nuovo elemento e reindirizza la pagina.

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

Altri suggerimenti

jtherkel era vicino, ma mancava un '}' alla fine dell'URL di reindirizzamento. Ho usato un ulteriore concat sotto

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

Non sono sicuro di dove esisterà l'ID nella pagina da cui si ospita il Javascript. Viene visualizzato nella stringa di query o in un campo nella pagina?

Non c'è nulla nella richiesta o nella risposta che identificherà l'articolo. Ho riscontrato questo problema durante l'esecuzione di alcuni test di caricamento Web.

Posso solo suggerire che tu crei l'articolo usando i webservice in quanto ti dà un po 'di ritorno xml.

Questa risposta non risolve il "nuovo modulo" problema, ma potrebbe aiutare gli altri con la sintassi per le schermate che contengono voci di elenco esistenti.

L'ho provato rapidamente nel mio ambiente SharePoint (MOSS 2007).

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

La sintassi concat è un'istruzione XSLT che dice al processore di combinare i valori racchiusi tra virgolette singole. Ho adattato questa risposta dalle informazioni che ho trovato qui.

Caricamento dei valori in un modulo elenco personalizzato http://wssdevelopment.blogspot.com/2007_04_01_archive.html

Spero che ciò possa essere utile: 1- In SharePoint Designer creare una nuova pagina, chiamarla ad esempio " LastItem.aspx " e posizionare una visualizzazione dati su di essa con una vista a modulo singolo per l'elemento dell'elenco di destinazione. 2-Limita il paging a un solo record, imposta l'ordinamento per ID e decrescente e filtra l'elenco per mostrare solo l'elemento creato da [utente corrente]. 3-Ora non è necessario passare alcuna stringa di query a questa pagina. sostituisci semplicemente " OK " in NewForm.aspx dell'elenco con un pulsante di input HTML standard e aggiungilo alla sua definizione " onclick = " javascript: {ddwrt: GenFireServerEvent (concat ('__ commit; __ redirect = {LastItem.aspx} " ;. Dopo l'invio un nuovo elemento da elencare verrai reindirizzato a una vista di modifica dell'elemento creato. Puoi fare lo stesso per il pulsante Salva in LastItem.aspx per reindirizzare a un'altra pagina dopo aver fatto clic sul pulsante Salva.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top