DataControlField.ExtractValuesFromCell 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
從目前資料表儲存格中擷取資料控制項欄位的值,並將值加入至指定的 IDictionary 集合。
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)
參數
- dictionary
- IOrderedDictionary
- cell
- DataControlFieldCell
DataControlFieldCell,其中包含 DataControlField 的文字或控制項。
- rowState
- DataControlRowState
其中一個 DataControlRowState 值。
- includeReadOnly
- Boolean
true
表示唯讀欄位的值包含在 dictionary
集合中,否則為 false
。
範例
下列程式碼範例示範如何為衍生自 類別的 DataControlField 控制項實 ExtractValuesFromCell 作 方法。 類別 RadioButtonField
會呈現 控制項中 GridView 每個資料列的資料繫結選項按鈕。
ExtractValuesFromCell呼叫 方法時,方法會嘗試判斷儲存格中包含的物件目前值 RadioButton 是否已選取或清除,並將值新增至 IDictionary 集合。 此程式碼範例是針對 類別提供的較大範例的 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 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
備註
方法 ExtractValuesFromCell 是由衍生自 DataControlField 的類型所實作,以在適用的情況下將目前欄位與值產生關聯。 欄位/值組會儲存在 dictionary
傳遞至 方法的集合中。 方法 ExtractValuesFromCell 是由 ExtractRowValues
和 等 DetailsViewGridView 資料控制項的 方法呼叫。
當您撰寫使用 DataControlFieldCell 物件來組合一組儲存格及其相關聯值的自訂資料繫結控制項時,請呼叫這個方法。 當您撰寫衍生自 DataControlField 的類別,以顯示使用者資料或資料系結資料時,請實作這個方法。 並非所有衍生類型都實作 ExtractValuesFromCell 方法,因為並非所有欄位都會顯示使用者資料。 例如, ButtonField 控制項會顯示按鈕,而且沒有使用者資料。