Dicas e Tutoriais de C#

Comandos do SharePoint com Jquery

Alguns comandos do Jquery que são úteis para usar nos fields do SharePoint:

Com o comando abaixo eu oculto a lookup de Centro de custos:

$('nobr:contains("Centro de Custo")').closest('tr').hide();


====================================================================================

Com o comando abaixo eu adiciono uma label e um campo textbox a uma variável,
a variável já contem as classes css para que fique de acordo com os campos do
NewForm do SharePoint:

var newInput = $("<tr><td nowrap='true' valign='top' width='113px' class='ms-formlabel'>
<span class='ms-h3 ms-standardheader'>Centro de Custo
<span class='ms-accentText' title='Este é um campo obrigatório.'>*</span></span></td>
<td valign='top' width='350px' class='ms-formbody'><span dir='none'>
<input type='text' onkeypress='getAllCentrosCustos()' maxlength='255' 
id='txtCentroCusto' style='ime-mode : ' class='ms-long ms-spellcheck-true' /><br/>
</span><span class='ms-metadata'>Centro de Custo Responsável pelo Equipamento</span>
</td></tr>"); 

=====================================================================================

No comando a seguir adiciono o campo de TextBox adicionado na variável no lugar da
lookup de centro de custos com Jquery

  $('nobr:contains("Centro de Custo")').closest('tr').after(newInput);

=====================================================================================

Com o comando a seguir pego o evento de alteração dentro do textbox criado, assim
quando um valor for selecionado ou inputado dentro do textbox ele irá executar a
função carregaDrop.

  $("#txtCentroCusto").change(function() {
    carregaDrop();
  })
=====================================================================================

para que o campo de textbox txtCentroCusto se torne um campo de auto complete,
primeiro é necessário criar a função, aqui abaixo a função do autocomplete:

function getAllCentrosCustos(){
$.ajax({
    url: _spPageContextInfo.webAbsoluteUrl +
"/_api/web/lists/getbytitle('Centro de Custo')/items?$top=1000",
    //a url com o filtro Top=1000 serve para mostrar mais de 100 registros
method: "GET",
    headers: { "Accept": "application/json; odata=verbose" },
    success: function (data) {
         
    var dataArray = [];
    var idCC = [];
                for (var j = 0j < data.d.results.lengthj++) {
                    dataArray.push(data.d.results[j].CC);
                }
                $("#txtCentroCusto").autocomplete({
                    source: dataArray
                });
    },
    error: function (data) {
        failure(data);
    }
 });
}

====================================================================================

Para salvar o item selecionado no textbox na lookup devemos usar a função abaixo:

function carregaDrop()  
{  
  var text = $('#txtCentroCusto').val();
  $.ajax({
    url: _spPageContextInfo.webAbsoluteUrl +
"/_api/web/lists/getbytitle('Centro de Custo')/items?$top=1000",
    method: "GET",
    headers: { "Accept": "application/json; odata=verbose" },
    success: function (data) {
      var items = data.d.results;
      for(var i = 0i < data.d.results.lengthi++) {
        var itemCC = data.d.results[i].CC;
        var itemId = data.d.results[i].ID;
        if(itemCC === text){
         var centoC = itemCC;
         $("select[title='Centro de Custo Campo Obrigatório']")
.append("<option selected='selected' value='"itemId +"'>"itemCC +"</option>");
         var newId = itemId;
         var newCC = itemCC;
        }
      }
      PreSaveAction(newIdnewCC);
    },
    error: function (data) {
        failure(data);
    }
   });
}  

=====================================================================================

Agora a função que será ativada antes de salvar, assim que o botão Salvar for clicado:

function PreSaveAction(newId, newCC)  
{  
  
  if ($("select[title='Centro de Custo Campo Obrigatório']").val() == "0")  
  {   
    carregaDrop();
  }
  else
  {
  if ($("select[title='Centro de Custo Campo Obrigatório']").val() == "undefined")  
   {  
    $("select[title='Centro de Custo Campo Obrigatório']")
.append("<option selected='selected' value='"newId +"'>"newCC +"</option>");
   }  
   else  
    {  
      return true;  
    } 
  }
}  

Por fim esses comandos são muito úteis para o SharePoint.













  

About mineromarari

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.

0 comentários:

Postar um comentário