Olá,
Consegui fazer esta proeza.
Para isto é preciso adicionar scripts no form NewForm.aspx e também na visão que deverá exibir o Modal.
Seguem scripts:
NewForm.aspx
<script src="../jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="../jquery.SPServices-0.5.8.js" type="text/javascript"></script>
<script type="text/javascript">
_spBodyOnLoadFunctionNames.push("PreSaveAction");
function PreSaveAction()
{
var newId = 0;
var query = "<Query><Where><Neq><FieldRef Name='ID' /><Value Type='Counter'>0</Value></Neq></Where><OrderBy><FieldRef Name='ID' Ascending='False' /></OrderBy></Query>";
$().SPServices(
{
operation: "GetListItems",
listName: "NomeMinhaLista",
async: false,
CAMLQuery: query,
CAMLRowLimit: 1,
completefunc: function (xData, status)
{
$(xData.responseXML).find("[nodeName='z:row']").each(function () {
newId = $(this).attr("ows_ID");
});
}
});
var URL = location.pathname.replace('NewForm.aspx','DispForm.aspx');
newID = parseFloat(newId) + 1;
URL = URL + "?ID=" + newID;
URL = "http://MeuSite/sites/MeuSubSite/Lists/NomeMinhaLista/AllItems.aspx?oUrl=" + URL;
window.location.href = location.pathname+"?Source="+ URL + "#/";
return true;
}
</script>
Visão AllItems.aspx
<script type="text/javascript">
var oUrl = getParameterByName('oUrl');
function getParameterByName(name)
{
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
if(getParameterByName('oUrl') != "")
{
OpenDialog(oUrl);
}
function OpenDialog(oUrl)
{
ExecuteOrDelayUntilScriptLoaded(internalOpenDialog, "SP.JS");
function internalOpenDialog()
{
var options = SP.UI.$create_DialogOptions();
options.url = oUrl;
options.dialogReturnValueCallback = Function.createDelegate(null, DialogCallback);
SP.UI.ModalDialog.showModalDialog(options);
}
}
function DialogCallback(dialogResult, returnValue){ }
</script>
Após o cadastro do item, o usuário é direcionado para a visão AllItems.
Na url é enviado a ur do DispForm.aspx de exibição do item cadastrado já com o ID deste item.
Na visão temos um script que lê as variáveis da url.
Após isto ele pega o valor da url e abre o Modal desta url.
Simples assim. Esta foi a melhor forma que encontrei para fazê-lo.
Isto foi necessário por que usamos a exibição de forms em Modal ativa para a Lista.
Valeu!!!!
k2rto4-Pb - Analista SharePoint