none
Campo oculto List Definition RRS feed

  • Pergunta

  • Boa noite pessoal!

    Estou precisando de uma ajuda. Tem um campo na minha lista que deverá receber o valor do nome do site ( Tenho um subsite com o nome "Projeto Alpha" e esse campo receberá o nome do Projeto ).

    A lista foi criada pelo Visual Studo através da List Definition. Não sei como capturar o evento antes de abrir a tela de inserção na lista.

    Pensei em deixar o campo oculto e no EventReceiver antes de adicionar ele preencheria a "Atributo" do objeto da lista, porém em a configuração do Schema.xml utilizei a propriedade ShowInNewForm="False" por ter feito isso não tenho esse Atributo para adicionar o valor no campo da Lista.

    Gostaria que o campo recebesse o valor antes de abrir o formulário de inserção na lista e ficasse como ReadOnly. Ou após a inserção conseguisse preencher o campo e em seguida salva-lo.

    Alguém já passou por isso e pode me ajudar?

    Abraço!

    quarta-feira, 14 de setembro de 2011 03:32

Todas as Respostas

  • Cara você pode fazer o EventReceiver mas não seria mais interessante definir o valor padrão do campo com esse "Projeto Alpha" e manter a propriedade ShowInNewForm = "False".

    Se for para ser mais genérico e pegar o nome do site em tempo de execução eu acho que o EventReceiver será mais interessante.

    quarta-feira, 14 de setembro de 2011 16:36
  • Marques blz?

    Pois é eu tentei fazer isso já, mas não rola..
    Se eu definir ShowInNewForm o meu "objeto" properties não retorna esse atributo para que eu o altere... Se você puder tentar depois dá uma olhada..

    valeu pela ajuda!

    quinta-feira, 15 de setembro de 2011 02:22
  • Opa e a Elton?

    Fiz de uma outra forma aqui:

    1 - Deixei o Atributo ShowInNewForm como true;

    2 - Na página da lista fui no ribbon a opção lista, fui no grupo Personalizar lista, e cliquei na opção Novo Formulário Padrão.

    3 - A página vai aparecer em modo edição, ai adicionei uma WebPart de Editor de conteúdo.

    4 - Cliquei para editar origem Html e coloquei o seguinte código:

    <span><script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script><script>
    $(document).ready(function() {
          $("input[type=text][Title=NOME_SEU_CAMPO]").val('O valor que quer que apareça');
          $("input[type=text][Title=</span>NOME_SEU_CAMPO]").attr('disabled',true);<br/><span>});
     </script></span>
    


    5 - Cliquei em salvar.

    6 - Selecione parar edição

    7 - Tente adicionar um novo item e veja que o campo será preenchido.

    Obs.: Não gosto da ideia de colocar o link do jquery apontando para o google, mas nesse caso acho que vale a ideia.

    Olha se atende, qualquer dúvida poste ai!

     

     

    Vou ver se gero um post sobre isso, achei legal  mexer com jquery e sharepoint.

    quinta-feira, 15 de setembro de 2011 23:58
  • Fiz uma alteração no script para buscar dinamicamente o nome do site:

     

     

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script><script>
    
    
    
    $(document).ready(function() {
          BuscaTituloWeb();
    $("input[type=text][Title=NOME_SEU_CAMPO]").attr('disabled',true); }); function BuscaTituloWeb() { var ctx = new SP.ClientContext.get_current(); this.web = ctx.get_web(); ctx.load(this.web); ctx.executeQueryAsync(Function.createDelegate(this, this.onSuccess), Function.createDelegate(this, this.onFail)); } function onSuccess(sender, args) { var nomeSite = this.web.get_title(); $("input[type=text][Title=NOME_SEU_CAMPO]").val(nomeSite); } function onFail(sender, args) { alert('Erro ao obter o nome do site'); }</script>

    Esse ficou melhor!!! rs

     



    sexta-feira, 16 de setembro de 2011 00:21
  • Marques,

    Vou testar no sábado e posto o resultado.
    Desde já agradeço sua atenção.
    A ideia é muito boa usando Jquery. Quando gerar o Post me avisa.

    Abraço!

    sexta-feira, 16 de setembro de 2011 03:12