none
redirecionar usuário quando ele tentar incluir um item na lista RRS feed

  • Pergunta

  • Olá,

    sou iniciante em Sharepoint, estou trabalhando com ele a apenas alguns dias e nunca tinha visto nada sobre ele antes, porém estou em um projeto feito em cima dele.

    meu cenário é: eu tenho uma lista, e tenho uma webPart que é um formulário que controla o registro de algumas ações, o que eu quero é que quando o usuário clicar em New > New Item para adicionar um item na lista ele seja redirecionado para a minha webPart e não para a tela de cadastro do sharepoint.

    realizei algumas tentativas usando Events Receivers - itemAdding, mas ele só executa depois de ter redirecionado para a tela de cadastro do sharepoint e depois que o usuário clicar em OK, e no meu caso ele não deve entrar nesta tela, e sim ir direto para a webPart.

     

    O que fazer???

     

    Qualquer ajuda é muito bem-vinda,

    obrigada

    terça-feira, 14 de setembro de 2010 20:13

Respostas

Todas as Respostas

  • Thayane boa tarde,

    Você já pensou em utilizar uma Form Library e recriar a lista já existente no InfoPath?
    Assim você pode atingir seu objetivo, em vez de abrir uma lista do SharePoint abrirá o formulário do InfoPath ao clicar em New Item, lembrando que você poderá exportar seus dados já cadastrados para um banco de dados que será vinculado ao seu formulário do InfoPath.

    Esta seria uma solução paliativa. Mas resolve de momento.

    Qualquer dúvida estou a disposição.

     


    Carlos Carvalho Citrangulo Junior
    MCP - MCDST - MCTS Microsoft Windows Vista Configuration - MCITP Enterprise Support Technician

    quarta-feira, 15 de setembro de 2010 16:06
  • Olá Carlos,

     

    mas o projeto esta fazendo exatamente o contrário, este formulário e todo o sistema era feito com infoPath, e o cliente quer que façamos que ele seja implementado todo em SharePoint.

    com infopath não tinham um bom resultado de performance.

     

    mas muito obrigada pela resposta..

    ainda estou pesquisando uma solução.

    grata,

    Thayane

    quarta-feira, 15 de setembro de 2010 17:00
  • Thayane,

    Só algumas dúvidas.

    Você já tem um Webpart criado?

    Se sim, que tipo de recurso do SharePoint você está usando neste webpart que você quer que seja aberto? Web content Editor, Excel Web Acces, XML Web Part...

    Você está desenvolvendo com SharePoint Designer ou WSS e qual versão.

    Apartir destas questões posso te ajudar melhor.

    Abraços,

     

     


    Carlos Carvalho Citrangulo Junior MCP - MCDST - MCTS Microsoft Windows Vista Configuration - MCITP Enterprise Support Technician
    quarta-feira, 15 de setembro de 2010 19:24
  • Carlos,

     

    meu WebPart já esta criado sim, é um webpart customizado, foi criado no VisualStudio como um Web User Control e implementado na webSite feito no sharepoint.

    estamos usando WSS 3.0

    voltando ao meu problema.....

    encontrei um caminho mas não sei se é completamente viavel, talvez vc possa me esclarecer, como eu disse eu nunca tinha visto sharepoint antes então tenho muitas duvidas ainda,..

    encontrei neste site http://www.c-sharpcorner.com/UploadFile/Chandresh.P/CustomizeSiteAction04222009055405AM/CustomizeSiteAction.aspx uma forma de adicionar uma ação no menu New da lista, por ex: ao invéz de clicar em NEW > New Item eu add um item de menu chamado Criar e então a pessoa pode clicar em New > Criar.

    desta forma ele faz o redirecionamento para minha webpart corretamente da forma que eu gostaria, porem este menu fica acessivel para todas as lista do webSite e eu quero que ela fique apenas para uma lista específica.

    a outra dúvida na tag <UrlAction Url="..."/>, eu vi que tem com passar o id do item como parametro, eu gostaria de saber se tem como passar como parametro o valor de alguma coluna do item em que ele clicar, pois estou fazendo o redirecionamento não só com a inclusão mas também com a alteração dos itens da lista.

     

    novamente agradeço pela atenção e pelas respostas,

    Thayane

    quarta-feira, 15 de setembro de 2010 19:48
  • Thayane,

     

    Você pode tentar fazer o seguinte, criar uma webpart editor de conteúdo que substitua o botão New da Lista, com uma tag a por exemplo :

     

    <a href="/Lists/<NOMEDALISTA>/NewForm.aspx">Adicione um novo item</a>

     

    Existe um parametro de QueryString que o SharePoint utiliza para redirecionar o usuário após a inclusão do item chamado Source basta vc substituir o link acima por :

     

    <a href="/Lists/<NOMEDALISTA>/NewForm.aspx?Source=<URL DA PAGINA>">Adicione um novo item</a>

     

    Onde <URL DA PAGINA> será a página que contem a sua webpart.

     

    Espero ter ajudado, se a duvida persistir estamos ae...

     

    Abraços,


    SharePoint Solution Architect
    quinta-feira, 16 de setembro de 2010 22:44
  • Olá Sergio,

    desculpe-me, mas eu acho que não entendi muito bem...

    em qual local eu coloco essa Tag? ... tem como passar o valor do item como parametro junto com a Url?... me desculpe a ignorância mas ainda não conheço muito de sharepoint e estou bem perdida.

    só uma coisa... vc deve ter lido meu post anterior onde eu falei q encontrei um artigo sobre CustomAction... se eu passar a url com ItemId e o ListId como parametro.... e no código da minha web part eu tentar recuperar este parametros... tah correto?... pq eu estou tentando fazer isso mas dah erro. da uma olhada no código... [caso haja erro de sintaxe, desculpe e pode me corrigir... talvez seja esse o erro]...

    <UrlAction Url="http://m38:48254/sites/MySite/TesteThayane?ID={ItemId}&amp;ListId={ListId}" /><br/>
    
    
    

    public class WebPartThayane : System.Web.UI.WebControls.WebParts.WebPart
    {
    public WebPartThayane13()
    {
    }
    
    protected override void CreateChildControls()
    {
    base.CreateChildControls(); <br/>
    
    
    <br/>
    
    
    SPSite siteCollection = SPContext.Current.Site; <br/>
    
    
    SPWeb site = siteCollection.OpenWeb("SiteTeste");<br/>
    
    
    <br/>
    
    
    string ListId = HttpContext.Current.Request.QueryString["ListId"]; <br/>
    
    
    string ItemId = HttpContext.Current.Request.QueryString["ItemId"]; <br/>
    
    
    <br/>
    
    
    SPList list = site.Lists["Plan_Action"]; <br/>
    
    
    SPListItem item = list.Items.GetItemById(Convert.ToInt32(ItemId));
    
    Label label = new Label();
    label.Text = "Site";
    
    TextBox txtItemId = new TextBox();
    txtItemId.Width = 200;
    TextBox txtItemTitle = new TextBox();
    txtItemTitle.Width = 200; <br/>
    
    
    <br/>
    
    
    txtItemId.Text = ItemId.ToString(); <br/>
    
    
    txtItemTitle.Text = item.Title;<br/>
    
    
    <br/>
    
    
    this.Controls.Add(label);
    this.Controls.Add(txtItemId);
    this.Controls.Add(txtItemTitle);
    }
    }
    


    Muito Obrigada pela atenção e pela respostas,

    Thayane

     

    sexta-feira, 17 de setembro de 2010 12:20
  • desconsidere os </br>

    []'s

    sexta-feira, 17 de setembro de 2010 12:41
  • encontrei um erro....

    ao contrário de

    string
     ListId = HttpContext.Current.Request.QueryString["ListId"
    ];

    e de

    string
     ItemId = HttpContext.Current.Request.QueryString["ItemId"
    ];

    eu coloco:

    int id = SPContext.Current.ItemId;
    Guid lista = SPContext.Current.ListId;
    

    assim eu recupero o valor passado por parametro....

    agora eu preciso que apareça Este menu Criar somente na minha lista... não em todas as listas do site.

     

    valew pela ajuda d todos... se alguem souber como deixar o menu visível só para minha lista eu agradeço muito.

    sexta-feira, 17 de setembro de 2010 14:09
  • Thayane,

     

    Segue um link que vai lhe ajudar, vc pode adicionar um Item de Custom Action em uma lista com JavaScript e ai redirecionar para essa página que contem a sua webpart.

    http://weblogs.asp.net/jan/archive/2009/09/03/customizing-the-sharepoint-ecb-with-javascript-part-1.aspx

     

    Espero ter ajudado,

     

    Abraços,


    SharePoint Solution Architect
    • Marcado como Resposta Thayane Rabonato sexta-feira, 17 de setembro de 2010 16:36
    sexta-feira, 17 de setembro de 2010 15:06
  • Olá Thayane, Tudo bem?

    Um custom list form, não resolve o seu problema? Veja a abordagem nesta thread: http://social.msdn.microsoft.com/Forums/pt-BR/sharepointpt/thread/3022ac12-d69e-4843-b580-7bc0e2777a72

    Entretanto, ao invés de criar uma página no SharePoint designer para isso, você poderia simplesmente criar uma página de WebParts e colocar a sua webpart nela.

    Abraços

    Rodrigo A. Romano
    -
    SharePoint Specialist
    Microsoft MCP e MCTS
    -

    http://rodrigo-romano.spaces.live.com
    http://www.canalsharepoint.com.br

    http://www.doneit.com.br

     


    Rodrigo A. Romano 

     


    Abraços Rodrigo A. Romano - SharePoint Specialist Microsoft MCP e MCTS - http://rodrigo-romano.spaces.live.com http://www.canalsharepoint.com.br http://www.doneit.com.br
    • Marcado como Resposta Thayane Rabonato sexta-feira, 17 de setembro de 2010 16:36
    sexta-feira, 17 de setembro de 2010 15:07
    Moderador