Exportar (0) Imprimir
Expandir todo

DataControlField.ExtractValuesFromCell (Método)

Actualización: noviembre 2007

Extrae el valor del campo de control de datos de la celda de la tabla actual y agrega su valor a la colección IDictionary especificada.

Espacio de nombres:  System.Web.UI.WebControls
Ensamblado:  System.Web (en System.Web.dll)

public virtual void ExtractValuesFromCell(
	IOrderedDictionary dictionary,
	DataControlFieldCell cell,
	DataControlRowState rowState,
	bool includeReadOnly
)
public void ExtractValuesFromCell(
	IOrderedDictionary dictionary,
	DataControlFieldCell cell,
	DataControlRowState rowState,
	boolean includeReadOnly
)
public function ExtractValuesFromCell(
	dictionary : IOrderedDictionary, 
	cell : DataControlFieldCell, 
	rowState : DataControlRowState, 
	includeReadOnly : boolean
)

Parámetros

dictionary
Tipo: System.Collections.Specialized.IOrderedDictionary
Objeto IOrderedDictionary.
cell
Tipo: System.Web.UI.WebControls.DataControlFieldCell
DataControlFieldCell que contiene el texto o los controles del objeto DataControlField.
rowState
Tipo: System.Web.UI.WebControls.DataControlRowState
Uno de los valores de DataControlRowState.
includeReadOnly
Tipo: System.Boolean
Es true para indicar que los valores de los campos de sólo lectura están incluidos en la colección dictionary; de lo contrario, es false.

Los tipos derivados de DataControlField para asociar el campo actual a un valor implementan el método ExtractValuesFromCell, si corresponde. El par campo/valor se almacena en la colección dictionary que se pasa al método. El método ExtractValuesFromCell es invocado por el método ExtractRowValues de controles de datos tales como DetailsView y GridView.

Llame a este método cuando escriba un control enlazado a datos personalizado que utilice objetos DataControlFieldCell para ensamblar un conjunto de celdas y sus valores asociados. Implemente este método cuando escriba una clase derivada de DataControlField que muestre datos del usuario o datos enlazados a datos. No todos los tipos derivados implementan el método ExtractValuesFromCell, porque no todos los campos muestran los datos del usuario. Por ejemplo, el control ButtonField muestra un botón y no contiene datos del usuario.

En el ejemplo de código siguiente se muestra cómo implementar el método ExtractValuesFromCell para un control que deriva de la clase DataControlField. La clase RadioButtonField representa un botón de opción enlazado a datos para cada fila de un control GridView. Cuando se llama al método ExtractValuesFromCell, éste intenta averiguar si el valor actual del objeto RadioButton contenido en la celda está activado o desactivado, y agrega el valor a la colección IDictionary. Este ejemplo de código forma parte de un ejemplo más extenso referente a la clase DataControlField.

// 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 on GridView 
//and DetailsView. Retrieve
// the current value of the cell from the Checked state of the Radio button.
public void ExtractValuesFromCell(IOrderedDictionary dictionary, 
    DataControlFieldCell cell, DataControlRowState rowState, 
    boolean includeReadOnly) throws InvalidOperationException
{
    // Does the cell contain a RadioButton in its Controls collection?
    if (cell.get_Controls().get_Count() > 0) {
        RadioButton radio = (RadioButton)cell.get_Controls().get_Item(0);

        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 = (System.Boolean)radio.get_Checked();
        }
        // Add the value of the Checked attribute of the
        // RadioButton to the dictionary.
        if (dictionary.Contains(get_DataField())) {
            dictionary.set_Item(get_DataField(), checkedValue);
        }
        else {
            dictionary.Add(get_DataField(), checkedValue);
        }
    }
} //ExtractValuesFromCell


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft