Поделиться через


DataControlRowState Перечисление

Определение

Задает состояние строки в элементе управления данными, например в DetailsView или GridView.

Это перечисление поддерживает побитовую комбинацию значений его членов.

public enum class DataControlRowState
[System.Flags]
public enum DataControlRowState
[<System.Flags>]
type DataControlRowState = 
Public Enum DataControlRowState
Наследование
DataControlRowState
Атрибуты

Поля

Alternate 1

Указывает, что строка элемента управления данными является альтернативной.

Состояние Alternate можно в любое время комбинировать с другими состояниями, например Normal, Edit или Insert. Эти строки могут быть затронуты свойством AlternateRowStyle элемента управления данными, если оно указано.

Edit 4

Указывает на то, что строка находится с состоянии редактирования, часто в качестве результата нажатия на кнопку редактирования данной строки. Обычно состояния Edit и Insert являются взаимоисключающими.

Insert 8

Указывает на то, что строка является новой, часто созданной в результате нажатия кнопки вставки. Обычно состояния Insert и Edit являются взаимоисключающими.

Normal 0

Указывает, что строка элемента управления данными находится в обычном состоянии. Состояние Normal является взаимоисключающим с другими состояниями, кроме состояния Alternate.

Selected 2

Указывает на то, что строка была выбрана пользователем.

Примеры

В следующем примере показано, как использовать DataControlRowState перечисление для отрисовки пользовательского интерфейса на основе состояния строки в элементе GridView управления . Класс RadioButtonField , являющийся пользовательским элементом управления полем, производным от CheckBoxField элемента управления , отображает переключатель с привязкой к данным для каждой строки в элементе GridView управления. Если строка отображает данные для пользователя и не находится в режиме редактирования RadioButton , элемент управления отключается. Когда пользователь обновляет строку в GridView , а строка находится в режиме редактирования, RadioButton элемент управления отображается как включенный, чтобы его можно было щелкнуть. В примере используются побитовые операторы AND, так как состояние строки может быть сочетанием одного или нескольких DataControlRowState значений. Этот пример является частью более крупного примера, предоставленного DataControlField для класса .

// This method adds a RadioButton control and any other 
// content to the cell's Controls collection.
protected override void InitializeDataCell
    (DataControlFieldCell cell, DataControlRowState rowState) {

  RadioButton radio = new RadioButton();

  // If the RadioButton is bound to a DataField, add
  // the OnDataBindingField method event handler to the
  // DataBinding event.
  if (DataField.Length != 0) {
    radio.DataBinding += new EventHandler(this.OnDataBindField);
  }

  radio.Text = this.Text;

  // Because the RadioButtonField is a BoundField, it only
  // displays data. Therefore, unless the row is in edit mode,
  // the RadioButton is displayed as disabled.
  radio.Enabled = false;
  // If the row is in edit mode, enable the button.
  if ((rowState & DataControlRowState.Edit) != 0 ||
      (rowState & DataControlRowState.Insert) != 0) {
    radio.Enabled = true;
  }

  cell.Controls.Add(radio);
}
' This method adds a RadioButton control and any other 
' content to the cell's Controls collection.
Protected Overrides Sub InitializeDataCell( _
    ByVal cell As DataControlFieldCell, _
    ByVal rowState As DataControlRowState)

    Dim radio As New RadioButton()

    ' If the RadioButton is bound to a DataField, add
    ' the OnDataBindingField method event handler to the
    ' DataBinding event.
    If DataField.Length <> 0 Then
        AddHandler radio.DataBinding, AddressOf Me.OnDataBindField
    End If

    radio.Text = Me.Text

    ' Because the RadioButtonField is a BoundField, it only 
    ' displays data. Therefore, unless the row is in edit mode, 
    ' the RadioButton is displayed as disabled.
    radio.Enabled = False
    ' If the row is in edit mode, enable the button.
    If (rowState And DataControlRowState.Edit) <> 0 _
        OrElse (rowState And DataControlRowState.Insert) <> 0 Then
        radio.Enabled = True
    End If

    cell.Controls.Add(radio)
End Sub

Комментарии

Перечисление DataControlRowState определяет состояние строки в элементе управления данными, DetailsView например или GridView. Состояние строки может быть одним или сочетанием значений DataControlRowState , поэтому используйте побитовые операции, чтобы определить, включает DataControlRowState ли состояние строки значение, а не проверку эквивалентности. Перечисление DataControlRowState используется для строк любого типа, а не только DataRow для строк (как правило, для состояния строк колонтитулов задано значение Normal).

Перечисление DataControlRowState можно использовать для определения состояния GridViewRow объекта или DetailsViewRow при перечислении через GridViewRowCollection коллекцию или DetailsViewRowCollection соответственно. Если вы создаете элемент управления данными, использующий строки, можно использовать DataControlRowState перечисление, чтобы определить, когда следует отображать различные цвета для строки ( Alternate значение) или элементов управления, которые включены или отключены для редактирования строки ( Edit значения и Insert ).

Применяется к

См. также раздел