Classes do campo personalizado

Para criar um personalizado classe tipo de campo, você deve derivar uma classe da classe SPField T:Microsoft.SharePoint.SPField ou uma das classes a tabela abaixo, na qual todos os derivar do SPField T:Microsoft.SharePoint.SPField classe.

Observação

Existem outras classes tipo de campo (classes cujos nomes seguem o padrão SPField*), mas elas são processadas na maneiras especiais por Windows SharePoint Services 3.0 e derivação novas classes a partir deles não é com suporte.

Recomendamos que você use o seguinte convenção de nomenclatura quando você cria personalizado que são classes campo derivado, diretamente ou indiretamente, a SPField T:Microsoft.SharePoint.SPField classe:

field_type_name Field

, --por exemplo, TargetDateField ou RegularExpressionField. (O SPField-derivado classes que enviar com Windows SharePoint Services 3.0 foram criadas antes que este convenção de nomenclatura foi deternined e que elas seguem o padrão SPField field_type_name como o SPFieldDateTime.)

Classes do campo personalizado podem ser derivados dos membros de classe SPField a seguir

As classes personalizadas tipo de campo que não herdam diretamente a partir de SPField T:Microsoft.SharePoint.SPField classe devem ser derivado de uma do seguinte classes.

Classe Descrição

SPFieldBoolean

Representa um Boolean.

SPFieldChoice

Representa uma escolha tipo de campo.

SPFieldCurrency

Representa um tipo de campo unidade monetária.

SPFieldDateTime

Representa uma data-tempo tipo de campo.

SPFieldLookup

Representa um campo pesquisa. O valor do campo para um objeto SPFieldLookup SPFieldLookup está contido em um objeto SPFieldLookupValue T:Microsoft.SharePoint.SPFieldLookupValue.

SPFieldMultiChoice

Representa um tipo de campo multichoice. O valor do campo para um objeto SPFieldMultiChoice SPFieldMultiChoice está contido em um objeto SPFieldMultiChoiceValue T:Microsoft.SharePoint.SPFieldMultiChoiceValue.

SPFieldMultiColumn

Representa um tipo de campo de várias colunas. O valor do campo para um objeto SPFieldMultiColumn SPFieldMultiColumn está contido em um objeto SPFieldMultiColumnValue T:Microsoft.SharePoint.SPFieldMultiColumnValue.

SPFieldMultiLineText

Representa um tipo de campo texto com várias linhas.

SPFieldNumber

Representa um tipo de campo número.

SPFieldRatingScale

Representa um tipo de campo classificações. O valor do campo para um objeto SPFieldRatingScale SPFieldRatingScale está contido em um objeto SPFieldRatingScaleValue T:Microsoft.SharePoint.SPFieldRatingScaleValue.

SPFieldText

Representa uma única linha de texto tipo de campo.

SPFieldUrl

Representa um tipo de campo URL. O valor do campo para um objeto SPFieldUrl SPFieldUrl está contido em um objeto SPFieldUrlValue T:Microsoft.SharePoint.SPFieldUrlValue.

SPFieldUser

Representa um usuário Windows SharePoint Services wssnoversshort.

Observação

Para obter mais informações sobre como criar personalizado classes valor do campo, consulte Classes do valor do campo personalizado.

Especificar o comportamento do campo personalizado

Depois que você escolher o campo classe da qual você desejar para derivar o personalizado tipo de campo, você pode selecionar os membros dessa classe que você desejar para substituir. Como a maioria das propriedades e comportamentos que compõem um exclusivo tipo de campo está contida em sua classe, há um valioso conjunto de substituir semântica disponível simplesmente escolhendo quais SPField-classe derivada sua nova implementação irá substituir.

De exemplo, a SPField T:Microsoft.SharePoint.SPField classe contém o seguinte membros cuja implementação pode ser substituída, se necessário, quando estiver desenvolvendo personalizado tipos campo.

Observação

Para a maioria dos membros listados nessa seção, a implementação usar como padrão do SPField T:Microsoft.SharePoint.SPField classe não se destina a fazer trabalho útil; de exemplo, GetFieldValue simplesmente retorna o que foi passado para ela e GetValidatedString simplesmente chama o ToStringmétodo de classe de valor (que não contenha qualquer lógica validação).Por esse motivo, se seu personalizado derivado diretamente do SPField, classe tipo de campo for vocêDeve Fornece substituições para qualquer um desses membros que você precisará usar para sua finalidade.

Membros de classe SPField que freqüentemente precisa ser substituído

SPField Class membros Descrição

FieldRenderingControl

Retorna um controle que pode ser usado para processar o campo em Exibir, editar e novos formulários, a Web Part de Formulário de dados e as páginas que usam controles campo. Um objeto instanciar um controle processamento tem, no seu Field P:Microsoft.SharePoint.WebControls.FieldMetadata.Field, uma referência voltar para o objeto Field que ele processa. Como essas referências recíproco sugerem, os dois objetos são parceiros. O SPField-derivado objeto controla a interação com o de conteúdo banco de dados, enquanto o BaseFieldControl-derivado controle processamento controla a interação com usuários e o processamento do campo na interface de usuário (interface do usuário). Observe, no entanto, que é não é necessário para processar um personalizado campo com um controle processamento: ele também pode ser processado com um RenderPattern definidos um campo definição, no qual maiúsculas e minúsculas o FieldRenderingControl P:Microsoft.SharePoint.SPField.FieldRenderingControl propriedade podem ser NULL null. The most comum padrão é usar um controle processamento para processar o campo no novo e editar modos e usar um padrão processar para processá-lo no modo de exibição.

Quando você usar um controle processamento, seu personalizado campo classe deve substituir o getter propriedade FieldRenderingControl P:Microsoft.SharePoint.SPField.FieldRenderingControl com o seguinte padrão padrão de codificar:

public override BaseFieldControl FieldRenderingControl
{
    [SharePointPermission(SecurityAction.LinkDemand, ObjectModel = true)]
    get 
    {
        BaseFieldControl fieldControl = new field_type_nameFieldControl();
        fieldControl.FieldName = this.InternalName;
        return fieldControl;
    }
}

O atributo permissão garante que apenas codificar com permissão para usar o modelo objeto Windows SharePoint Services 3.0 wssversion3short pode ler a propriedade. A atribuição de linha Nome interno do objeto Field o para o FieldName P:Microsoft.SharePoint.WebControls.BaseFieldControl.FieldName propriedade também define o Field P:Microsoft.SharePoint.WebControls.BaseFieldControl.Field propriedade para o objeto Field. Isso garante que o field_type_name FieldControl Saiba qual objeto é processamento.

FieldRenderingMobileControl

Retorna um controle pode ser usado para processar o campo nos formulários exibir, editar e novo em aplicativos móveis.

GetFieldValueForEdit

Retorna o valor do campo a ser processado no modo Editar. Este método é usado para os formulários de edição e novo.

GetValidatedString

Quando substituído em uma classe derivada, retorna o valor do campo validadas. Substituir este método para personalizado lógica serialização validação e dados. (O método base não fornece nenhuma validação lógica e não muitas das classes Windows SharePoint Services 3.0 wssversion3short que derivado dele fazer.) Esse método por sua vez, pode usar o método ToString ToString do objeto valor do campo para converter o objeto valor do campo em um seqüência de caracteres. O substituir típico deve:

  • Lançar um SPFieldValidationException quando o valor de usuário fornecido para o campo não for válido, ou se o valor for NULL null e o campo é exigido. Essa exceção é capturada pelo nova coluna site , alterar site coluna criar colunas e páginas Alterar coluna se o usuário tenta salvar um valor inválido. No que maiúsculas e minúsculas, a página permanece aberto e a propriedade Message P:Microsoft.SharePoint.SPFieldValidationException.Message da exceção é usada para local uma mensagem de erro ao lado de inválido campo.

  • Chamar o de base GetValidatedString se e somente se o valor passa o personalizado validação.

Consulte A validação de dados do campo personalizado para obter mais informações e um exemplo de um substituído GetValidatedString

OnAdded

Substituir para especificar personalizado lógica tipo de campo depois que um campo é adicionado a uma lista.

OnUpdated

Substituir para especificar personalizado lógica tipo de campo depois que um campo for atualizado.

OnDeleting

Substituir para especificar personalizado tipo de campo lógica antes que um campo seja excluído de uma lista.

Membros de classe SPField que tem mais substituídos quando um tipo de dados complexos personalizado É usado

Também há vários membros do SPField classe que você provavelmente para substituir quando o tipo de campo requer um personalizado complexo tipo de dados que é diferente do tipo de campo pai. Você define tal personalizado tipos dados com personalizado classes valor do campo. (Talvez também precise substituir esses membros em outras situações, mesmo quando não estiver criando personalizado tipos dados.)

Membros de classe SPField Descrição

DefaultValue

Retorna, como um seqüência de caracteres, um valor usar como padrão que pode ser usado para o campo quando um determinado item da lista não tiver nenhum valor no campo.

DefaultValueTyped

Retorna um valor usar como padrão que pode ser usado para o campo quando um determinado item da lista não tiver nenhum valor no campo.

FieldValueType

Retorna tipo de valor o campo.

GetFieldValue

Retorna o valor do campo como um objeto.

GetFieldValueAsText

Retorna o valor de dados campo como um seqüência de caracteres.

GetFieldValueAsHtml

Retorna o valor de dados campo como um seqüência de caracteres, formatado como HTML. Esta HTML-formatado valor do campo com mais freqüência é usado para processar o valor do campo diretamente em uma página. De exemplo, ele é usado na página histórico de versão de um item da lista. No entanto, este HTML-formatado valor do campo não é usado em forma de exibição. Processamento do campo para a forma de exibição é geralmente o mesmo processamento para modos de exibição lista; Ou seja, ele é processado a partir de elemento Colaboração Application Markup Language (CAML) CAML DisplayPattern DisplayPattern no arquivo fldtype*.xml do o tipo de campo.

GetValidatedString

Consulte a observação na seção Especificar o comportamento do campo personalizado.

PreviewValueTyped

Retorna um valor visualizar do campo dados, para uma exibição tempo de design de controle de campo no modo de exibição e edição.

Consulte também

Tarefas

Walkthrough: Criar um tipo de campo personalizado

Conceitos

Padrões de processamento do campo personalizado
Tipos de campo personalizado
A validação de dados do campo personalizado
Classes do valor do campo personalizado