Partager via


DataControlField.ExtractValuesFromCell Méthode

Définition

Extrait la valeur du champ de contrôle de données à partir de la cellule active du tableau et ajoute la valeur à la collection IDictionary spécifiée.

public:
 virtual void ExtractValuesFromCell(System::Collections::Specialized::IOrderedDictionary ^ dictionary, System::Web::UI::WebControls::DataControlFieldCell ^ cell, System::Web::UI::WebControls::DataControlRowState rowState, bool includeReadOnly);
public virtual void ExtractValuesFromCell (System.Collections.Specialized.IOrderedDictionary dictionary, System.Web.UI.WebControls.DataControlFieldCell cell, System.Web.UI.WebControls.DataControlRowState rowState, bool includeReadOnly);
abstract member ExtractValuesFromCell : System.Collections.Specialized.IOrderedDictionary * System.Web.UI.WebControls.DataControlFieldCell * System.Web.UI.WebControls.DataControlRowState * bool -> unit
override this.ExtractValuesFromCell : System.Collections.Specialized.IOrderedDictionary * System.Web.UI.WebControls.DataControlFieldCell * System.Web.UI.WebControls.DataControlRowState * bool -> unit
Public Overridable Sub ExtractValuesFromCell (dictionary As IOrderedDictionary, cell As DataControlFieldCell, rowState As DataControlRowState, includeReadOnly As Boolean)

Paramètres

dictionary
IOrderedDictionary

Élément IOrderedDictionary.

cell
DataControlFieldCell

DataControlFieldCell qui contient le texte ou les contrôles du DataControlField.

rowState
DataControlRowState

Une des valeurs de l'objet DataControlRowState.

includeReadOnly
Boolean

true pour indiquer que les valeurs de champs en lecture seule sont incluses dans la collection dictionary ; sinon, false.

Exemples

L’exemple de code suivant montre comment implémenter la ExtractValuesFromCell méthode pour un contrôle qui dérive de la DataControlField classe. La RadioButtonField classe restitue une case d’option liée aux données pour chaque ligne d’un GridView contrôle. Lorsque la ExtractValuesFromCell méthode est appelée, la méthode tente de déterminer si la valeur actuelle de l’objet RadioButton contenu dans la cellule est sélectionnée ou effacée et ajoute la valeur à la IDictionary collection. Cet exemple de code fait partie d’un exemple plus grand fourni pour la DataControlField classe.

// This method is called by the ExtractRowValues methods of 
// GridView and DetailsView. Retrieve the current value of the 
// cell from the Checked state of the Radio button.
public override void ExtractValuesFromCell(IOrderedDictionary dictionary,
                                           DataControlFieldCell cell,
                                           DataControlRowState rowState,
                                           bool includeReadOnly)
{

  // Determine whether the cell contains a RadioButton 
  // in its Controls collection.
  if (cell.Controls.Count > 0) {
    RadioButton radio = cell.Controls[0] as RadioButton;

    object checkedValue = null;
    if (null == radio) {
      // A RadioButton is expected, but a null is encountered.
      // Add error handling.
      throw new InvalidOperationException
          ("RadioButtonField could not extract control.");
    }
    else {
        checkedValue = radio.Checked;
    }

    // Add the value of the Checked attribute of the
    // RadioButton to the dictionary.
    if (dictionary.Contains(DataField))
      dictionary[DataField] = checkedValue;
    else
      dictionary.Add(DataField, checkedValue);
  }
}
' This method is called by the ExtractRowValues methods of
' GridView and DetailsView. Retrieve the current value of the 
' cell from the Checked state of the Radio button.
Public Overrides Sub ExtractValuesFromCell( _
    ByVal dictionary As IOrderedDictionary, _
    ByVal cell As DataControlFieldCell, _
    ByVal rowState As DataControlRowState, _
    ByVal includeReadOnly As Boolean)
    ' Determine whether the cell contain a RadioButton 
    ' in its Controls collection.
    If cell.Controls.Count > 0 Then
        Dim radio As RadioButton = CType(cell.Controls(0), RadioButton)

        Dim checkedValue As Object = Nothing
        If radio Is Nothing Then
            ' A RadioButton is expected, but a null is encountered.
            ' Add error handling.
            Throw New InvalidOperationException( _
                "RadioButtonField could not extract control.")
        Else
            checkedValue = radio.Checked
        End If


        ' Add the value of the Checked attribute of the
        ' RadioButton to the dictionary.
        If dictionary.Contains(DataField) Then
            dictionary(DataField) = checkedValue
        Else
            dictionary.Add(DataField, checkedValue)
        End If
    End If
End Sub

Remarques

La ExtractValuesFromCell méthode est implémentée par les types dérivés de DataControlField l’association du champ actuel à une valeur, le cas échéant. La paire champ/valeur est stockée dans la dictionary collection passée à la méthode. La ExtractValuesFromCell méthode est appelée par la ExtractRowValues méthode des contrôles de données tels que DetailsView et GridView.

Appelez cette méthode lorsque vous écrivez un contrôle personnalisé lié aux données qui utilise DataControlFieldCell des objets pour assembler un ensemble de cellules et leurs valeurs associées. Implémentez cette méthode lorsque vous écrivez une classe dérivée de DataControlField celle-ci qui affiche des données utilisateur ou des données liées aux données. Tous les types dérivés n’implémentent pas la ExtractValuesFromCell méthode, car tous les champs n’affichent pas les données utilisateur. Par exemple, le ButtonField contrôle affiche un bouton et n’a pas de données utilisateur.

S’applique à

Voir aussi