Pergunta

Como você cria uma coluna de pesquisa de uma biblioteca de documentos que usa o 'Nome' do documento como o valor de pesquisa?

Eu encontrei um post que recomenda a adição de um outro campo personalizado como "nome do arquivo" e, em seguida, usando um receptor item para preencher o campo personalizado com o valor do campo de nome, mas que parece brega. Link para o blog no caso de pessoas estão interessadas: http://blogs.msdn.com/pranab/archive/2008/01/08/sharepoint-2007-moss-wss-issue-with-lookup-column-to-doc- lib-name-field.aspx

Eu tenho um monte de tipos de conteúdo de documento personalizado que eu não quero confusão com uma solução que realmente deve funcionar assim mesmo.

Foi útil?

Solução

Uma maneira que você pode fazer isso (embora não seja a maneira mais fácil) é através da criação de um tipo de campo personalizado que estende a classe SPFieldLookup. editor campo do SharePoint para campos de pesquisa propositadamente esconde qualquer tipo de colunas que não são suportados por campos de pesquisa, mas você pode criar um editor de campo para o seu tipo de campo personalizado que mostra-los.

No entanto, eu criei uma coluna de pesquisa que aponta para uma coluna Nome em uma biblioteca de documentos antes, e provavelmente não funciona como você esperaria. Enquanto o valor armazenado na coluna de pesquisa é válida, ele não mostra acima da direita na vista de lista ou no formulário Ver Propriedades.

A solução que você postou pode realmente ser a melhor maneira de lidar com isso. Campos de pesquisa exigem algumas kludges se você quiser lidar com cenários mais complexos, mas isso é porque eles não estão destinados a fornecer a mesma funcionalidade que uma relação de chave estrangeira em um banco de dados.

Outras dicas

Eu criei um fluxo de trabalho um passo para definir o título a partir do nome, dispararam sobre modificar e criado. Parece trabalho e levou segundos para criar.

Codificação de qualquer forma sempre me assusta. Então aqui está o que eu fiz: Eu simplesmente rebatizado de "Título" Estúpido campo para outra coisa, dizer "Palavras-chave", uma vez que você não pode fazer nada com esse campo: não pode mesmo torná-lo obrigatório. Então eu criei um outro campo de linha única chamada "Título" e usou esse campo para os Lookups

Bem, há uma solução simples para isso e no trabalho de força em alguns casos. No resumo, se você fizer o campo de título obrigatório, isso vai forçar o usuário digite um título. Dessa forma, podemos usar o campo do título como um campo de pesquisa.

Agora Como fazer isso? Um você é feito criar um movimento biblioteca de documentos para a configuração de biblioteca. Selecione Configuração avançada e selecione Sim para a opção "Permitir a gestão de tipos de conteúdo?". Em seguida, voltar para a configuração Biblioteca e Sob tipos de conteúdo selecione a opção "Documento" O tipo de conteúdo. Em seguida, selecione título da coluna e, em seguida, Selecione "Obrigatório (Deve conter informações)" e dizer OK.

Agora tente carregar um documento a esta biblioteca de documentos. Você verá campo Título no formulário.

Espero que isso ajude Felicidades Vaqar

Você tem que adicionar o campo como XML com o ShowField como 'FileLeafRef'

var XmlFieldDefinition = "<Field DisplayName='myLookupColumn' Type='LookupMulti' StaticName='myLookupColumn' Name='myLookupColumn' Required='FALSE' List='THE LOOKUP ID HERE' WebId='THE WEB ID HERE' UnlimitedLengthInDocumentLibrary='TRUE' Mult='TRUE' Sortable='FALSE' ShowField='FileLeafRef' />"

Field fld = fieldCollection.AddFieldAsXml(XmlFieldDefinition, true, AddFieldOptions.DefaultValue);
ClientContext.Load(fld);

ClientContext.ExecuteQuery();

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