DataControlField.ExtractValuesFromCell Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Extrahuje hodnotu pole ovládacího prvku dat z aktuální buňky tabulky a přidá hodnotu do zadané IDictionary kolekce.
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
- dictionary
- IOrderedDictionary
- cell
- DataControlFieldCell
A DataControlFieldCell , který obsahuje text nebo ovládací prvky DataControlField.
- rowState
- DataControlRowState
Jedna z DataControlRowState hodnot.
- includeReadOnly
- Boolean
true
chcete-li označit, že hodnoty polí jen pro čtení jsou zahrnuty v dictionary
kolekci; v opačném případě false
.
Příklady
Následující příklad kódu ukazuje, jak implementovat metodu ExtractValuesFromCell pro ovládací prvek, který je odvozen z DataControlField třídy. Třída RadioButtonField
vykreslí přepínač vázané na data pro každý řádek v ovládacím GridView prvku. ExtractValuesFromCell Při volání metody se metoda pokusí určit, zda je aktuální hodnota RadioButton objektu obsaženého v buňce vybrána nebo vymazána, a přidá hodnotu do IDictionary kolekce. Tento příklad kódu je součástí většího příkladu poskytnutého DataControlField pro třídu.
// 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
Poznámky
Metoda ExtractValuesFromCell je implementována pomocí typů odvozených od DataControlField pro přidružení aktuálního pole k hodnotě, pokud je to možné. Dvojice polí a hodnot je uložena v dictionary
kolekci, která je předána metodě. Metoda ExtractValuesFromCell je volána metodou ExtractRowValues
ovládacích prvků dat, jako je a DetailsView GridView.
Tuto metodu zavolejte při psaní vlastního ovládacího prvku vázaného na data, který používá DataControlFieldCell objekty k sestavení sady buněk a jejich přidružených hodnot. Tuto metodu implementujte při psaní třídy odvozené z DataControlField toho, která zobrazuje uživatelská data nebo data svázaná s daty. Ne všechny odvozené typy implementují metodu ExtractValuesFromCell , protože ne všechna pole zobrazují uživatelská data. Ovládací prvek například ButtonField zobrazí tlačítko a nemá žádná uživatelská data.