Inquiridor
Hyperlink enviando dados

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
Todas as Respostas
-
-
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 -
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 -
-
-
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 -
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. -
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}&N_x00fa_mero_x0020_do_x0020_Proc={@N_x00fa_mero_x0020_do_x0020_Proc}&Devedor={@Devedor}&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.