none
Hyperlink enviando dados RRS feed

  • Pergunta

  • Boa tarde,
    Tenho uma exibição de dados aonde tem todos os dados de uma pessoa, criei um hyperlink para um outro formulário, e gostaria que assim que a pessoa clicasse no hyperlink; direcionasse para o formulário já com alguns campos adicionados no formulário como por exemplo nome, data de nascimento, recado... Tem como fazer isso....???
    Criei o hyperlink no WSS 3.0, assim:

    <td class="ms-vb">
        <a href="http://srvwra12/sites/pacto/Lists/Tarefas/NewForm.aspx?{@Parecer}"><xsl:value-of select="@Parecer" /></a>
       </td>

    Preciso passar os parametros neste código mesmo...???
    Aguardando resposta,
    Emerson
    segunda-feira, 11 de janeiro de 2010 18:48

Todas as Respostas

  • Emerson,
    Ter tem mas tudo vai depender de onde vai buscar estas informações, uma lista, BD, XML, Campos, AD, etc etc

    De onde pretende buscar ?

    Att,
    Victor Fróes
    segunda-feira, 11 de janeiro de 2010 19:38
  • Bom dia Victor,
    Vou buscar estes dados de uma lista, a mesma que esta exibindo os dados.
    Imagine que na exibição de dados de uma lista do sharepoint, cada dado exibido recebe um link, por exemplo Parecer do Cliente, aonde o usuário iria clicar neste link, que iria levar direto a um formulário, aonde neste formulário teria alguns campos já preenchidos do cliente que ela clicou na exibição de dados.
    Aguardando resposta,
    Emerson
    terça-feira, 12 de janeiro de 2010 10:41
  • Você pode criar um user control que busque o usuario de contexto e faça um vinculo com a lista que precisa.

    Ai depois é só adicionar.

    Seguem exemplos :


    Utilizar User Controls
    http://jamestsai.net/Blog/post/Using-ASPNET-Web-User-Control-with-Code-Behind-in-SharePoint.aspx

    Pegar usuario de Contexto
    http://sharepointlogics.com/2008/04/determining-current-user-context-inside.html

    Espero ter ajudado.

    Att,

    Victor Fróes

    terça-feira, 12 de janeiro de 2010 11:20
  • Bom dia Victor,
    Não entendi bem...??? Porque preciso de um user control...???
    Só quero passar alguns dados para um formulário de uma lista de exibição de dados...
    Emerson
    terça-feira, 12 de janeiro de 2010 12:26
  • Prq eu nao conheco outra forma de pegar o usuario autenticado, vc conhece ?
    Se conhecer me passe pois todo conhecimento é bem vindo.
    Afinal vc precisa saber deste usuario para pegar o Nome, sobrenome, etc etc.

    Victor Fróes
    terça-feira, 12 de janeiro de 2010 12:32
  • Bom dia Victor Fróes,
    Cenário:
    Tenho uma lista de Títulos, aonde na exibição dos dados desta lista, vou ter um link direcionando para um formulário de Parecer do Título, e gostaria que assim que o formulário de Parecer do Título aparecesse, teria alguns campos da lista de Títulos, já preenchidos, como por exemplo, Nº do Título, Nome do Cliente Devedor, Nº do Processo - para que o usuário não precise ficar digitando ou procurando. Já traria os dados a partir do link da exibição de dados, de acordo com o Título clicado. O link já está feito, agora preciso inserir os dados a partir do link criado, conforme o meu primeiro post.
    Por exemplo:
    <td class="ms-vb">
        <a href="http://srvwra12/sites/pacto/Lists/Tarefas/NewForm.aspx?{@Parecer}"><xsl:value-of select="@Parecer"Titulo=_&Nome do Cliente Devedor=_&Status=></a>
       </td>

    Aguardando resposta,
    Emerson
    terça-feira, 12 de janeiro de 2010 13:23
  • Emerson,
    Veja se este exemplo te ajuda.

    /*******
    SharePoint Field Type 	identifier 		tagName 		Option
    ---------------------	--------------	----------	---------
    Single Line of Text 	TextField 	input 
    Multiple Lines of Text 	TextArea 	input 
    Number 			TextField 	input 
    Currency 		TextField 	input 
    Choice (radio buttons)	RadioButtons	input
    Choice (radio buttons)	RadioButtons	input    		value
    Choice (dropdown) 	DropDownChoice 	select 
    Lookup (single)*		Lookup 		select 
    Lookup (multiple)		SelectCandidate;
    			SelectResult 	select 
    Yes/No			BooleanField 	input 
    ******/
    function getTagFromIdentifierAndTitle(tagName, identifier, title, option) {
      var len = identifier.length;
      var tags = document.getElementsByTagName(tagName);
      for (var i=0; i < tags.length; i++) {
        var idString = tags[i].id;
        var nameString = tags[i].name;
        // get selected radio button value only
        if (option == "value" && tags[i].type == "radio" && (identifier == "RadioButtons" && nameString.indexOf(identifier) == nameString.length - len)) {
          var tagParentHTML = tags[i].parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.innerHTML;
    	  if (tagParentHTML.indexOf('FieldName="'+title+'"') > -1) {
    	  	var radioButtons = document.getElementsByName(nameString);
    	  	var radioValue = "";
    	  	for (var x=0; x < radioButtons.length; x++) {
    	  	  if (radioButtons[x].checked) {
    	  	  	radioValue = radioButtons[x].parentElement.title;
    	  	    break;
    	  	  }
    	  	}
            var o = document.createElement("INPUT");
            o.type = "hidden";
            o.value = radioValue;
        	return o;
    	  }
        }
        // get radio buttons group
        if (tags[i].type == "radio" && (identifier == "RadioButtons" && nameString.indexOf(identifier) == nameString.length - len)) {
          var tagParentHTML = tags[i].parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.innerHTML;
    	  if (tagParentHTML.indexOf('FieldName="'+title+'"') > -1) {
    	  	return document.getElementsByName(nameString);
    	  }
        }
    	// all other input or select type
        else if (tags[i].title == title && (identifier == "" || idString.indexOf(identifier) == idString.length - len)) {
          return tags[i];
        }
      }
      return null;
    }
    Logicamente ele esta incluindo o campo, mas pode tomar como base para incluir o Default Value dele.
    quarta-feira, 13 de janeiro de 2010 13:18
  • Bom dia a todos,
    Achei uma forma em Java script mais fácil. O código se encontra abaixo, mas não se esqueça de colocar uma codificação para "Decode", e "Encode" a URL.
    Como construir o hyperlink, na lista em sua exibição de dados, mude a view para XSLT, adicione mais uma coluna, clique com o botão esquerdo e selecione hyperlink, abaixo esta a linha do hyperlink:

    <a href="../Tarefas/NewForm.aspx?Title={@Title}&amp;N_x00fa_mero_x0020_do_x0020_Proc={@N_x00fa_mero_x0020_do_x0020_Proc}&amp;Devedor={@Devedor}&amp;Cliente={@Cliente}">Parecer</a>

    E abaixo esta o código, que você deve inserir no form que o hyperlink.

    <script type="text/javascript" language="javascript">
    _spBodyOnLoadFunctionNames.push("fillDefaultValues");
    function fillDefaultValues(){
      var qs=location.search.substring(1,location.search.length);
      var args=qs.split("&");
      var vals=new Object();
      for (var i=0; i<args.length;i++){
        var nameVal=args[i].split("=");
        var temp=unescape(nameVal[1]).split('+');
        nameVal[1]=temp.join('');
        vals[nameVal[0]]=decodeURIComponent(nameVal[1]);
      }
       
      document.getElementById('Nome do campo interpretado pelo browser que vai receber os valores').value = vals["Nome do campo enviado pelo hyperlink"];
      document.getElementById('Nome do campo interpretado pelo browser que vai receber os valores').value = vals["Nome do campo enviado pelo hyperlink"];
      document.getElementById('Nome do campo interpretado pelo browser que vai receber os valores').value = vals["Nome do campo enviado pelo hyperlink"];
      document.getElementById('Nome do campo interpretado pelo browser que vai receber os valores').value = vals["Nome do campo enviado pelo hyperlink"]; 
    }
    </script>

    Atenciosamente,
    Emerson
    OBS.: Marque se este post foi importante.
    segunda-feira, 1 de fevereiro de 2010 10:58