none
New item form sharepoint designer "mensagem item salvo" RRS feed

  • Pergunta

  • Senhores, bom dia.

    Estou criando um New item form no sharepoint designer. Funciona perfeito, quando clico em salvar a informação a salva na lista configurada. Mas gostaria de saber como eu sei no sharepoint designer que a lista foi salva e neste momento informar ao usuário?

    Verifiquei que no salvar existe esta implementação.

    <input type="button" value="Save" name="btnSave" onclick="javascript: {ddwrt:GenFireServerEvent('__commit') }" />

    Obrigado.


    Stephany Henrique de Almeida Batista

    segunda-feira, 30 de julho de 2012 12:36

Respostas

  • Stephany,

    Tudo bem?

    No SPDesigner não vai conseguir saber (de forma simples, claro. É possível, mas dará um certo trabalho utilizando Javascript ou algo similar). Para o que precisa, só com o Visual Studio, implementando um Event Receiver (ou Event Handler) interceptando o evento ItemAdded e/ou ItemUpdated (que somente são disparados se o item foi salvo com sucesso).

    http://rodrigoromano.net/tag/event-receiver/ - Event Handler em SharePoint 2010

    Abraço!


    Se esta resposta foi útil para você, por favor, marque como Resposta! Muito Obrigado! :) Thiago Silva Especialista SharePoint http://thiagottss.com.br

    segunda-feira, 30 de julho de 2012 14:28

Todas as Respostas

  • Exemplo utilizando alert:

    <input type="button" value="Save" name="btnSave" onclick="javascript: alert('Oi!!!'); {ddwrt:GenFireServerEvent('__commit') }" />

    Ou se estiver utilizando SharePoint 2010 , utilize SP.UI.Notify:

    <input type="button" value="Save" name="btnSave" onclick="javascript:SP.UI.Notify.addNotification('Oi!', false);{ddwrt:GenFireServerEvent('__commit') }" />


    ROBERTOSLJUNIOR

    segunda-feira, 30 de julho de 2012 13:21
  • Roberto, bom dia

    Obrigado pela sua dica, mas mostrar a mensagem eu já sabia. O que eu perguntei foi se tem alguma função que me diga se realmente o item foi salvo na lista. Lembrando que do modo que você implementou a mensagem sempre será exibida mesmo se a lista não foi salva.

    Obrigado.


    Stephany Henrique de Almeida Batista

    segunda-feira, 30 de julho de 2012 13:37
  • Stephany,

    Tudo bem?

    No SPDesigner não vai conseguir saber (de forma simples, claro. É possível, mas dará um certo trabalho utilizando Javascript ou algo similar). Para o que precisa, só com o Visual Studio, implementando um Event Receiver (ou Event Handler) interceptando o evento ItemAdded e/ou ItemUpdated (que somente são disparados se o item foi salvo com sucesso).

    http://rodrigoromano.net/tag/event-receiver/ - Event Handler em SharePoint 2010

    Abraço!


    Se esta resposta foi útil para você, por favor, marque como Resposta! Muito Obrigado! :) Thiago Silva Especialista SharePoint http://thiagottss.com.br

    segunda-feira, 30 de julho de 2012 14:28
  • Thiago, obrigado!

    Stephany Henrique de Almeida Batista

    segunda-feira, 30 de julho de 2012 16:29
  • Roberto, bom dia

    Obrigado pela sua dica, mas mostrar a mensagem eu já sabia. O que eu perguntei foi se tem alguma função que me diga se realmente o item foi salvo na lista. Lembrando que do modo que você implementou a mensagem sempre será exibida mesmo se a lista não foi salva.

    Oi Stephany,

    o evento:

    ... ddwrt:GenFireServerEvent('__commit')...

    simplesmente, executa um __dopostback com uma chamada para um evento no servidor chamado __commit.

    ... __doPostBack('ctl00$...','__commit') ...

    Se o commit for executado sem erro o item foi salvo ok.

    Um simples callback do SP.UI.ModalDialog, pode resolver o seu problema.

    Como os items de uma lista são executado através de uma função chamada NewItem2, sobreescreva essa função com o seguinte código:

    Verifica se a função NewItem2 de sua lista é diferente de null:

    if (typeof NewItem2 != 'undefined') {
        var oNI2 = NewItem2;
        NewItem2 = this.NewItem2;
    }

    e recria a função NewItem2 com a chamada para sua função customizada

    NewItem2 = function(event, url) {
        OpenModalForm(url);
    };

    acima é exibido como a nova função NewItem2 faz uma chamada para a função OpenModalForm, onde você pode customizar o callback para o usuário.

    Abaixo segue um código completo:

    <script type="text/javascript"> function OpenModalForm(url) { var options = SP.UI.$create_DialogOptions(); options.url = url; options.width = 800; options.height = 600; options.title = ""; options.dialogReturnValueCallback = Function.createDelegate(null, CloseCallback); SP.UI.ModalDialog.showModalDialog(options); } function CloseCallback(dialogResult, returnValue) {    

    if ( dialogResult == SP.UI.DialogResult.OK ) { SP.UI.ModalDialog.commonModalDialogClose(SP.UI.DialogResult.OK);

    SP.UI.Notify.addNotification('OK!', false);

    SP.UI.ModalDialog.RefreshPage(1);

    } if ( dialogResult == SP.UI.DialogResult.cancel ) { SP.UI.ModalDialog.commonModalDialogClose(SP.UI.DialogResult.Cancel);

    SP.UI.Notify.addNotification('Cancelou!', false);

    SP.UI.ModalDialog.RefreshPage(1);

    } } if (typeof NewItem2 != 'undefined') { var oNI2 = NewItem2; NewItem2 = this.NewItem2; } NewItem2 = function(event, url) { OpenModalForm(url); }; </script>

    Bom espero ter ajudado.

    Abraço

    Roberto


    ROBERTOSLJUNIOR



    • Editado robertosljunior sexta-feira, 3 de agosto de 2012 14:41 Adicionado RefreshPage
    sexta-feira, 3 de agosto de 2012 14:20
  • Opa!, vai ajudar sim!

    Muito obrigado, vou testar e te falo

    Valeuuu!!


    Stephany Henrique de Almeida Batista

    sexta-feira, 3 de agosto de 2012 16:51