Pergunta

Eu tenho um costume de aplicativos do SharePoint página implantado para a pasta _layouts.É um costume "nova forma" para um tipo de conteúdo personalizado.Durante minhas interações com esta página, será preciso adicionar um item de minha lista.Quando a página carrega primeiro, posso usar SPContext.Atual.A lista para ver a lista atual que eu estou trabalhando.Mas depois de preencher o meu formulário e o formulário envia de volta para si mesma e IsPostBack é verdade, então SPContext.Atual.Lista é nulo então eu não posso encontrar a lista que eu preciso para adicionar minhas coisas em.

É este o esperado?

Como devo reter algumas informações sobre a minha lista de contexto de todo o postback?Devo apenas preencher alguns asp:controle oculto com a minha guid da lista e, em seguida, puxe-a novamente do que no postback?Que parece seguro, eu acho.

FWIW, este é o MOSS 2007 versão Padrão.

Foi útil?

Solução

Geralmente eu tento e copiar qualquer que seja a abordagem que o grupo de produtos tem levado ao olhar para adicionar a funcionalidade de minha própria.Neste caso que adicionar os seus próprios editar/visualizar/adicionar páginas através de uma lista de definição de si mesmo.

Eu construí uma solução que também necessário o seu próprio personalizado "Nova" forma, não é open source, infelizmente, mas se você estiver interessado você pode baixá-lo, é chamado de "Links codificados" (Social Bookmarking para SharePoint) e você pode encontrar alguns links no meu blog.

Para dar algumas dicas e sugestões, o seguinte deve definir o fora na direção certa:

  1. Criou uma nova definição de lista.
  2. Criou um novo Tipo de Conteúdo No tipo de conteúdo que você pode definir o seu próprio "FormTemplates" que faz referência a uma Renderização do Modelo que determina o que é exibido no "Meio" pouco dessas formas.
  3. Copiou o padrão de Renderização do Modelo, mas, em seguida, fez as alterações para que eu necessário.
  4. Envolveu-o em uma solução, e implantado.

Meu Renderização do Modelo incluía uma substituído Botão "Salvar", onde eu fiz um monte de trabalho extra que eu precisava fazer durante o salvar.

De qualquer maneira, é um pouco demais na minha opinião, mas, eu acho, é mais parecida com o padrão de abordagem utilizada pelos desenvolvedores do produto.Deixe-me saber se você precisar de mais detalhes e vou ver se consigo montar um passo-a-passo post do blog, mas espero que este obtém-lo na direção certa.

Outras dicas

Eu ficaria surpreso se você pudesse fazer algo em um _Layouts arquivo que você não pode fazer em um modelo de formulários.Você tem praticamente as mesmas tecnologias à sua disposição.

Olhando para a maneira como o SharePoint trabalha com ListItems e Layouts de páginas (por exemplo, "Gerenciar Permissões" em um item da lista), eu posso ver que eles passam por algumas variáveis na via cadeias de caracteres de consulta:?obj={76113B3A-FABA-4389-BC85-4BB2CC5AB423},6,LISTITEM&List={76113B3A-FABA-4389-BC85-4BB2CC5AB423}

Talvez eles pegam o contexto de volta a cada vez que programaticamente usando esses valores.

Eu não estou usando uma custom "nova forma", então isso pode não se aplicar.Eu adicionei um receptor de eventos para o meu tipo de conteúdo personalizado e, em seguida, fazer o meu código personalizado no ItemAdded ou ItemAdding eventos.Este código é acionado quando o evento é adicionado a uma lista.Você pode usar o receptor de evento propriedades para acessar a Lista principal, Web e Site.

Eu gostaria de pensar que o meu problema é "especial" aqui, desde que eu estou usando um formulário personalizado.Optei por usar um formulário personalizado em vez de um personalizado FormTemplate simplesmente porque eu estou fazendo um monte de coisas que não é muito de lista do SharePoint como (fazer chamadas ajax para obter informações a partir de um aplicativo de terceiros, em seguida, gerar algum dinâmica de elementos de formulário com base no que o ajax resultado, então, processamento posterior dos dados em postback).Eu pensei que seria um pesadelo para tentar dentro do habitual renderização do modelo de mecanismo.

Eu também não acho que eu posso fornecer o formulário personalizado declarações a definição da lista em si, porque eu tenho vários tipos de conteúdo associados a esta lista, e cada tipo de conteúdo tem seu próprio formulário personalizado (o outro tipo é, felizmente, muito mais simples).

Na verdade, a minha maneira simples de manter o guid da lista no meu campo oculto foi muito baixo impacto maneira de abordar esse problema específico.A minha principal preocupação é que eu não sou certo porque o SPContext apenas perde toda a sua utilidade quando eu postback aqui, o que me faz pensar que eu estou fazendo algo de errado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top