次の方法で共有


ListView.EditIndex プロパティ

定義

編集中の項目のインデックスを取得または設定します。

public:
 virtual property int EditIndex { int get(); void set(int value); };
public virtual int EditIndex { get; set; }
member this.EditIndex : int with get, set
Public Overridable Property EditIndex As Integer

プロパティ値

編集中の項目の 0 から始まるインデックス番号。 既定値は -1 で、項目が編集されていないことを示します。

例外

EditIndex プロパティは、-1 未満の値が設定されています。

次の例は、 プロパティを EditIndex 使用して、アイテムがコントロールの編集モードであるかどうかを判断する方法を ListView 示しています。 このコード例は、ListViewDataItem クラスのために提供されている大規模な例の一部です。

protected void ContactsListView_ItemDataBound(object sender, ListViewItemEventArgs e)
{

  //Verify there is an item being edited.
  if (ContactsListView.EditIndex >= 0)
  {

    //Get the item object.
    ListViewDataItem dataItem = (ListViewDataItem)e.Item;

    // Check for an item in edit mode.
    if (dataItem.DisplayIndex == ContactsListView.EditIndex)
    {

      // Preselect the DropDownList control with the Title value
      // for the current item.

      // Retrieve the underlying data item. In this example
      // the underlying data item is a DataRowView object.        
      DataRowView rowView = (DataRowView)dataItem.DataItem;

      // Retrieve the Title value for the current item. 
      String title = rowView["Title"].ToString();

      // Retrieve the DropDownList control from the current row. 
      DropDownList list = (DropDownList)dataItem.FindControl("TitlesList");

      // Find the ListItem object in the DropDownList control with the 
      // title value and select the item.
      ListItem item = list.Items.FindByText(title);
      list.SelectedIndex = list.Items.IndexOf(item);
                      
    }
  }
}
Protected Sub ContactsListView_ItemDataBound(ByVal sender As Object, ByVal e As ListViewItemEventArgs) 
    
  'Verify there is an item being edited.
  If ContactsListView.EditIndex >= 0 Then
    
    'Get the item object.
    Dim dataItem As ListViewDataItem = CType(e.Item, ListViewDataItem)
    
    ' Check for an item in edit mode.
    If dataItem.DisplayIndex = ContactsListView.EditIndex Then
        
      ' Preselect the DropDownList control with the Title value
      ' for the current item.
      ' Retrieve the underlying data item. In this example
      ' the underlying data item is a DataRowView object.        
      Dim rowView As DataRowView = CType(dataItem.DataItem, DataRowView)
      
      ' Retrieve the Title value for the current item. 
      Dim title As String = rowView("Title").ToString()
      
      ' Retrieve the DropDownList control from the current row. 
      Dim list As DropDownList = CType(dataItem.FindControl("TitlesList"), DropDownList)
      
      ' Find the ListItem object in the DropDownList control with the 
      ' title value and select the item.
      Dim item As ListItem = list.Items.FindByText(title)
      list.SelectedIndex = list.Items.IndexOf(item)
    End If 
  End If

End Sub

注釈

プロパティを EditIndex 使用して、編集するコントロール内の項目を ListView プログラムで指定または決定できます。 このプロパティがコントロール内の項目のインデックスに設定されている場合、その項目は編集モードで表示されます。 編集モードでは、項目はテンプレートではなくItemTemplateテンプレートをEditItemTemplate使用してレンダリングされます。 にデータ バインド コントロールを設定 EditItemTemplate して、ユーザーがアイテムの値を変更できるようにすることができます。 編集モードから表示モードに切り替えるには、このプロパティを -1 に設定します。

プロパティは EditIndex 、通常、編集する項目をプログラムで決定する必要がある場合、またはコントロールにカスタム編集機能を追加する場合に ListView 使用されます。 ListViewコントロールには、プロパティが に設定されている項目テンプレートCommandNameにボタンを追加すると、アイテムが編集モードで自動的に配置Editされる組み込みの編集機能があります。

適用対象

こちらもご覧ください