Freigeben über


DataControlField.ExtractValuesFromCell Methode

Definition

Extrahiert den Wert des Datensteuerelement-Felds aus der aktuellen Tabellenzelle und fügt den Wert der angegebenen IDictionary-Auflistung hinzu.

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)

Parameter

cell
DataControlFieldCell

Eine DataControlFieldCell, die den Text oder die Steuerelemente von DataControlField enthält.

rowState
DataControlRowState

Einer der DataControlRowState-Werte.

includeReadOnly
Boolean

true, um anzugeben, dass die Werte schreibgeschützter Felder in der dictionary-Auflistung enthalten sind, andernfalls false.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie die ExtractValuesFromCell -Methode für ein Steuerelement implementiert wird, das von der DataControlField -Klasse abgeleitet wird. Die RadioButtonField -Klasse rendert ein datengebundenes Optionsfeld für jede Zeile in einem GridView Steuerelement. Wenn die ExtractValuesFromCell -Methode aufgerufen wird, versucht die -Methode zu bestimmen, ob der aktuelle Wert des in der RadioButton Zelle enthaltenen Objekts ausgewählt oder gelöscht wird, und fügt den Wert der IDictionary Auflistung hinzu. Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die DataControlField-Klasse bereitgestellt wird.

// 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

Hinweise

Die ExtractValuesFromCell -Methode wird durch Typen implementiert, die von DataControlField abgeleitet werden, um das aktuelle Feld ggf. einem Wert zuzuordnen. Das Feld-Wert-Paar wird in der dictionary Auflistung gespeichert, die an die -Methode übergeben wird. Die ExtractValuesFromCell -Methode wird von der ExtractRowValues -Methode von Datensteuerelementen wie DetailsView und GridViewaufgerufen.

Rufen Sie diese Methode auf, wenn Sie ein benutzerdefiniertes datengebundenes Steuerelement schreiben, das Objekte verwendet DataControlFieldCell , um eine Reihe von Zellen und den zugehörigen Werten zusammenzustellen. Implementieren Sie diese Methode, wenn Sie eine von DataControlField abgeleitete Klasse schreiben, die Benutzerdaten oder datengebundene Daten anzeigt. Nicht alle abgeleiteten Typen implementieren die ExtractValuesFromCell -Methode, da nicht alle Felder Benutzerdaten anzeigen. Das Steuerelement zeigt z. ButtonField B. eine Schaltfläche an und enthält keine Benutzerdaten.

Gilt für:

Weitere Informationen