Udostępnij za pośrednictwem


DataControlField.ExtractValuesFromCell Metoda

Definicja

Wyodrębnia wartość pola kontrolki danych z bieżącej komórki tabeli i dodaje wartość do określonej IDictionary kolekcji.

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)

Parametry

cell
DataControlFieldCell

Element DataControlFieldCell zawierający tekst lub kontrolki elementu DataControlField.

rowState
DataControlRowState

Jedna z DataControlRowState wartości.

includeReadOnly
Boolean

true aby wskazać, że wartości pól tylko do odczytu znajdują się w dictionary kolekcji; w przeciwnym razie false.

Przykłady

W poniższym przykładzie kodu pokazano, jak zaimplementować ExtractValuesFromCell metodę dla kontrolki pochodzącej DataControlField z klasy. Klasa RadioButtonField renderuje przycisk radiowy powiązany z danymi dla każdego wiersza w kontrolce GridView . ExtractValuesFromCell Gdy metoda jest wywoływana, metoda próbuje określić, czy bieżąca wartość RadioButton obiektu zawartego w komórce jest zaznaczona lub wyczyszczone, i dodaje wartość do IDictionary kolekcji. Ten przykład kodu jest częścią większego przykładu podanego DataControlField dla klasy.

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

Uwagi

Metoda ExtractValuesFromCell jest implementowana przez typy pochodzące z DataControlField , aby skojarzyć bieżące pole z wartością, jeśli ma to zastosowanie. Para pól/wartości jest przechowywana w dictionary kolekcji przekazanej do metody. Metoda jest wywoływana ExtractValuesFromCell przez metodę ExtractRowValues kontrolek danych, takich jak DetailsView i GridView.

Wywołaj tę metodę podczas pisania niestandardowej kontrolki powiązanej z danymi, która używa DataControlFieldCell obiektów do złożenia zestawu komórek i skojarzonych z nimi wartości. Zaimplementuj tę metodę podczas pisania klasy pochodnej, DataControlField która wyświetla dane użytkownika lub dane powiązane z danymi. Nie wszystkie typy pochodne implementują metodę ExtractValuesFromCell , ponieważ nie wszystkie pola wyświetlają dane użytkownika. Na przykład kontrolka ButtonField wyświetla przycisk i nie ma danych użytkownika.

Dotyczy

Zobacz też