DataGrid.EditItemStyle-Eigenschaft
Ruft die Stileigenschaften für das zur Bearbeitung im DataGrid-Steuerelement ausgewählte Element ab.
Namespace: System.Web.UI.WebControls
Assembly: System.Web (in system.web.dll)
Syntax
'Declaration
Public Overridable ReadOnly Property EditItemStyle As TableItemStyle
'Usage
Dim instance As DataGrid
Dim value As TableItemStyle
value = instance.EditItemStyle
public virtual TableItemStyle EditItemStyle { get; }
public:
virtual property TableItemStyle^ EditItemStyle {
TableItemStyle^ get ();
}
/** @property */
public TableItemStyle get_EditItemStyle ()
public function get EditItemStyle () : TableItemStyle
Eigenschaftenwert
Ein TableItemStyle-Objekt, das die Stileigenschaften des zur Bearbeitung im DataGrid-Steuerelement ausgewählten Elements enthält. Der Standardwert ist ein leeres TableItemStyle-Objekt.
Hinweise
Verwenden Sie die EditItemStyle-Eigenschaft, um einen benutzerdefinierten Stil für das zur Bearbeitung im DataGrid-Steuerelement ausgewählte Element bereitzustellen. Allgemeine Formatierungsattribute, die angepasst werden können, sind u. a. Vordergrund- und Hintergrundfarbe, Schriftart sowie die Ausrichtung in der Zelle. Die Angabe eines unterschiedlichen Stils führt zu einer verbesserten Darstellung des DataGrid-Steuerelements.
Die Stileigenschaften von Elementen im DataGrid-Steuerelement werden über eine Hierarchie von einer Elementstileigenschaft zur nächsten geerbt. Stileigenschaften von Elementen, die in der Hierarchie niedriger stehen, erben von Stileigenschaften, die in der Hierarchie höher stehen. Wenn Sie z. B. eine rote Schriftart für die ItemStyle-Eigenschaft festlegen, ist für alle anderen Stileigenschaften eines Elements im DataGrid-Steuerelement ebenfalls die rote Schriftart festgelegt. Somit erreichen Sie eine einheitliche Darstellung des Steuerelements, indem Sie eine einzige Stileigenschaft für Elemente festlegen. Sie können die geerbten Stileinstellungen einer Stileigenschaft eines Elements, das in der Hierarchie höher steht, überschreiben, indem Sie dessen Stileigenschaften festlegen. Sie können z. B. eine blaue Schriftart für die AlternatingItemStyle-Eigenschaft festlegen und damit die in der ItemStyle-Eigenschaft festgelegte rote Schriftart überschreiben. In der folgenden Tabelle ist die Hierarchie in der Anordnung von der höchsten zur niedrigsten Ebene aufgeführt.
Vorrang |
Stileigenschaft |
---|---|
1 |
EditItemStyle |
2 |
|
3 |
AlternatingItemStyle |
4 |
ItemStyle |
5 |
Zum Angeben eines benutzerdefinierten Stils für das zur Bearbeitung ausgewählte Element fügen Sie <EditItemStyle>-Tags zwischen dem öffnenden und dem schließenden Tag des DataGrid-Steuerelements ein. Anschließend können Sie die Stilattribute im öffnenden <EditItemStyle>-Tag auflisten.
Beispiel
Das folgende Codebeispiel veranschaulicht, wie mit der EditItemStyle-Eigenschaft als Hintergrundfarbe des für die Bearbeitung ausgewählten Elements Gelb festgelegt wird.
<%@ 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>
Plattformen
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 unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
DataGrid-Klasse
DataGrid-Member
System.Web.UI.WebControls-Namespace
TableItemStyle
Style