DataGrid.EditItemStyle プロパティ
アセンブリ: System.Web (system.web.dll 内)

DataGrid コントロールの編集対象として選択された項目のスタイル プロパティを格納している TableItemStyle オブジェクト。既定値は空の TableItemStyle オブジェクトです。

EditItemStyle プロパティを使用して、DataGrid コントロールの編集対象として選択された項目のカスタム スタイルを指定します。調整できる共通スタイル属性には、前景色、背景色、フォント、セル内の内容の配置などがあります。異なるスタイルを指定すると、DataGrid コントロールの外観が詳細に設定されます。
DataGrid コントロールの項目スタイル プロパティは、優先順位に従って、ある項目スタイル プロパティから別の項目スタイル プロパティへと継承されます。優先順位の高い項目スタイル プロパティは、優先順位が低い項目スタイル プロパティの値を継承します。たとえば、ItemStyle プロパティに赤いフォントを指定すると、DataGrid コントロールの他のすべての項目スタイル プロパティにも赤いフォントが設定されます。これにより、単一の項目スタイル プロパティを設定するだけで、コントロールの全体的な外観に統一感を持たせることができます。優先順位の高い項目スタイル プロパティが継承したスタイル設定を無効にする場合は、そのスタイル プロパティに独自の値を設定します。たとえば、AlternatingItemStyle プロパティに青いフォントを指定して、ItemStyle プロパティで指定した赤いフォントをオーバーライドできます。優先順位を高い方から低い方への順序で次の表に示します。
1 | EditItemStyle |
2 | SelectedItemStyle |
3 | AlternatingItemStyle |
4 | ItemStyle |
5 | ControlStyle |
編集対象として選択された項目のカスタム スタイルを指定するには、<EditItemStyle> タグを DataGrid コントロールの開始タグと終了タグの間に配置します。その後、<EditItemStyle> の開始タグ内にスタイル属性のリストを記述できます。

EditItemStyle プロパティを使用して、編集のために選択されている項目の背景色を黄色に設定する方法を次のコード例に示します。
<%@ Page Language="VB" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <html> <script language="VB" runat="server"> Dim Cart As New DataTable Dim CartView As DataView Sub Page_Load(sender As Object, e As EventArgs) Dim dr As DataRow If Session("ShoppingCart") Is Nothing Then Cart.Columns.Add(New DataColumn("Qty", GetType(String))) Cart.Columns.Add(New DataColumn("Item", GetType(String))) Cart.Columns.Add(New DataColumn("Price", GetType(String))) Session("ShoppingCart") = Cart ' Create sample data. Dim i As Integer For i = 1 To 4 dr = Cart.NewRow() If i Mod 2 <> 0 Then dr(0) = "2" Else dr(0) = "1" End If dr(1) = "Item " & i.ToString() dr(2) =(1.23 *(i + 1)).ToString() Cart.Rows.Add(dr) Next i Else Cart = CType(Session("ShoppingCart"), DataTable) End If CartView = New DataView(Cart) CartView.Sort = "Item" If Not IsPostBack Then BindGrid() End If End Sub 'Page_Load Sub MyDataGrid_Edit(sender As Object, e As DataGridCommandEventArgs) MyDataGrid.EditItemIndex = e.Item.ItemIndex BindGrid() End Sub 'MyDataGrid_Edit Sub MyDataGrid_Cancel(sender As Object, e As DataGridCommandEventArgs) MyDataGrid.EditItemIndex = - 1 BindGrid() End Sub 'MyDataGrid_Cancel Sub MyDataGrid_Update(sender As Object, e As DataGridCommandEventArgs) ' For bound columns, the edited value is stored in a TextBox. ' The TextBox is the 0th element in the column's cell. Dim qtyText As TextBox = CType(e.Item.Cells(2).Controls(0), TextBox) Dim priceText As TextBox = CType(e.Item.Cells(3).Controls(0), TextBox) Dim item As String = e.Item.Cells(1).Text Dim qty As String = qtyText.Text Dim price As String = priceText.Text Dim dr As DataRow ' With a database, use an update command to update the data. Because ' the data source in this example is an in-memory DataTable, delete the ' old row and replace it with a new one. ' Remove old entry. CartView.RowFilter = "Item='" & item & "'" If CartView.Count > 0 Then CartView.Delete(0) End If CartView.RowFilter = "" ' Add new entry. dr = Cart.NewRow() dr(0) = qty dr(1) = item dr(2) = price Cart.Rows.Add(dr) MyDataGrid.EditItemIndex = - 1 BindGrid() End Sub 'MyDataGrid_Update Sub BindGrid() MyDataGrid.DataSource = CartView MyDataGrid.DataBind() End Sub 'BindGrid </script> <body style="font: 10pt verdana"> <form runat="server"> <h3>DataGrid Editing Example</h3> <asp:DataGrid id="MyDataGrid" runat="server" BorderColor="black" BorderWidth="1" CellPadding="3" Font-Name="Verdana" Font-Size="8pt" OnEditCommand="MyDataGrid_Edit" OnCancelCommand="MyDataGrid_Cancel" OnUpdateCommand="MyDataGrid_Update" AutoGenerateColumns="false"> <HeaderStyle BackColor="#aaaadd"> </HeaderStyle> <EditItemStyle BackColor="yellow"> </EditItemStyle> <Columns> <asp:EditCommandColumn EditText="Edit" CancelText="Cancel" UpdateText="Update" HeaderText="Edit Command Column"> <ItemStyle Wrap="false"> </ItemStyle> <HeaderStyle Wrap="false"> </HeaderStyle> </asp:EditCommandColumn> <asp:BoundColumn HeaderText="Item" ReadOnly="true" DataField="Item"/> <asp:BoundColumn HeaderText="Quantity" DataField="Qty"/> <asp:BoundColumn HeaderText="Price" DataField="Price"/> </Columns> </asp:DataGrid> </form> </body> </html>
<%@ Page Language="C#" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <html> <script language="C#" runat="server"> DataTable Cart = new DataTable(); DataView CartView; void Page_Load(Object sender, EventArgs e) { DataRow dr; if (Session["ShoppingCart"] == null) { Cart.Columns.Add(new DataColumn("Qty", typeof(String))); Cart.Columns.Add(new DataColumn("Item", typeof(String))); Cart.Columns.Add(new DataColumn("Price", typeof(String))); Session["ShoppingCart"] = Cart; // Create sample data. for (int i = 1; i <= 4; i++) { dr = Cart.NewRow(); if (i % 2 != 0) dr[0] = "2"; else dr[0] = "1"; dr[1] = "Item " + i.ToString(); dr[2] = (1.23 * (i + 1)).ToString(); Cart.Rows.Add(dr); } } else Cart = (DataTable)Session["ShoppingCart"]; CartView = new DataView(Cart); CartView.Sort="Item"; if (!IsPostBack) BindGrid(); } void MyDataGrid_Edit(Object sender, DataGridCommandEventArgs e) { MyDataGrid.EditItemIndex = e.Item.ItemIndex; BindGrid(); } void MyDataGrid_Cancel(Object sender, DataGridCommandEventArgs e) { MyDataGrid.EditItemIndex = -1; BindGrid(); } void MyDataGrid_Update(Object sender, DataGridCommandEventArgs e) { // For bound columns, the edited value is stored in a TextBox. // The TextBox is the 0th element in the column's cell. TextBox qtyText = (TextBox)e.Item.Cells[2].Controls[0]; TextBox priceText = (TextBox)e.Item.Cells[3].Controls[0]; String item = e.Item.Cells[1].Text; String qty = qtyText.Text; String price = priceText.Text; DataRow dr; // With a database, use an update command to update the data. Because // the data source in this example is an in-memory DataTable, delete the // old row and replace it with a new one. // Remove old entry. CartView.RowFilter = "Item='" + item + "'"; if (CartView.Count > 0) CartView.Delete(0); CartView.RowFilter = ""; // Add new entry. dr = Cart.NewRow(); dr[0] = qty; dr[1] = item; dr[2] = price; Cart.Rows.Add(dr); MyDataGrid.EditItemIndex = -1; BindGrid(); } void BindGrid() { MyDataGrid.DataSource = CartView; MyDataGrid.DataBind(); } </script> <body style="font: 10pt verdana"> <form runat="server"> <h3>DataGrid Editing Example</h3> <asp:DataGrid id="MyDataGrid" runat="server" BorderColor="black" BorderWidth="1" CellPadding="3" Font-Name="Verdana" Font-Size="8pt" OnEditCommand="MyDataGrid_Edit" OnCancelCommand="MyDataGrid_Cancel" OnUpdateCommand="MyDataGrid_Update" AutoGenerateColumns="false"> <HeaderStyle BackColor="#aaaadd"> </HeaderStyle> <EditItemStyle BackColor="yellow"> </EditItemStyle> <Columns> <asp:EditCommandColumn EditText="Edit" CancelText="Cancel" UpdateText="Update" HeaderText="Edit Command Column"> <ItemStyle Wrap="false"> </ItemStyle> <HeaderStyle Wrap="false"> </HeaderStyle> </asp:EditCommandColumn> <asp:BoundColumn HeaderText="Item" ReadOnly="true" DataField="Item"/> <asp:BoundColumn HeaderText="Quantity" DataField="Qty"/> <asp:BoundColumn HeaderText="Price" DataField="Price"/> </Columns> </asp:DataGrid> </form> </body> </html>
<%@ Page Language="JScript" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <html> <script language="JScript" runat="server"> var Cart : DataTable = new DataTable(); var CartView : DataView; function Page_Load(sender, e : EventArgs) { var dr : DataRow; if (Session["ShoppingCart"] == null) { Cart.Columns.Add(new DataColumn("Qty", System.String)); Cart.Columns.Add(new DataColumn("Item", System.String)); Cart.Columns.Add(new DataColumn("Price", System.String)); Session["ShoppingCart"] = Cart; // Create sample data. for (var i : int = 1; i <= 4; i++) { dr = Cart.NewRow(); if (i % 2 != 0) dr[0] = "2"; else dr[0] = "1"; dr[1] = "Item " + i.ToString(); dr[2] = (1.23 * (i + 1)).ToString(); Cart.Rows.Add(dr); } } else Cart = DataTable(Session["ShoppingCart"]); CartView = new DataView(Cart); CartView.Sort="Item"; if (!IsPostBack) BindGrid(); } function MyDataGrid_Edit(sender, e : DataGridCommandEventArgs) { MyDataGrid.EditItemIndex = e.Item.ItemIndex; BindGrid(); } function MyDataGrid_Cancel(sender, e : DataGridCommandEventArgs) { MyDataGrid.EditItemIndex = -1; BindGrid(); } function MyDataGrid_Update(sender, e : DataGridCommandEventArgs) { // For bound columns, the edited value is stored in a Textbox. // The TextBox is the 0th element in the column's cell. var qtyText : TextBox = TextBox(e.Item.Cells[2].Controls[0]); var priceText : TextBox = TextBox(e.Item.Cells[3].Controls[0]); var item : String = e.Item.Cells[1].Text; var qty : String = qtyText.Text; var price : String = priceText.Text; var dr : DataRow; // With a database, use an update command to update the data. Because // the data source in this example is an in-memory DataTable, delete the // old row and replace it with a new one. // Remove old entry. CartView.RowFilter = "Item='" + item + "'"; if (CartView.Count > 0) CartView.Delete(0); CartView.RowFilter = ""; // Add new entry. dr = Cart.NewRow(); dr[0] = qty; dr[1] = item; dr[2] = price; Cart.Rows.Add(dr); MyDataGrid.EditItemIndex = -1; BindGrid(); } function BindGrid() { MyDataGrid.DataSource = CartView; MyDataGrid.DataBind(); } </script> <body style="font: 10pt verdana"> <form runat="server"> <h3>DataGrid Editing Example</h3> <asp:DataGrid id="MyDataGrid" runat="server" BorderColor="black" BorderWidth="1" CellPadding="3" Font-Name="Verdana" Font-Size="8pt" OnEditCommand="MyDataGrid_Edit" OnCancelCommand="MyDataGrid_Cancel" OnUpdateCommand="MyDataGrid_Update" AutoGenerateColumns="false"> <HeaderStyle BackColor="#aaaadd"> </HeaderStyle> <EditItemStyle BackColor="yellow"> </EditItemStyle> <Columns> <asp:EditCommandColumn EditText="Edit" CancelText="Cancel" UpdateText="Update" HeaderText="Edit Command Column"> <ItemStyle Wrap="false"> </ItemStyle> <HeaderStyle Wrap="false"> </HeaderStyle> </asp:EditCommandColumn> <asp:BoundColumn HeaderText="Item" ReadOnly="true" DataField="Item"/> <asp:BoundColumn HeaderText="Quantity" DataField="Qty"/> <asp:BoundColumn HeaderText="Price" DataField="Price"/> </Columns> </asp:DataGrid> </form> </body> </html>

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からDataGrid.EditItemStyle プロパティを検索する場合は、下記のリンクをクリックしてください。

- DataGrid.EditItemStyle プロパティのページへのリンク