DataGrid.SelectedItemStyle Property
Gets the style properties of the currently selected item in the DataGrid control.
Assembly: System.Web (in System.Web.dll)
<PersistenceModeAttribute(PersistenceMode.InnerProperty)> Public Overridable ReadOnly Property SelectedItemStyle As TableItemStyle
Property Value
Type: System.Web.UI.WebControls.TableItemStyleA TableItemStyle object that contains the style properties of the currently selected item in the DataGrid control. The default value is an empty TableItemStyle object.
Use the SelectedItemStyle property to provide a custom style for the selected item in the DataGrid control. Common style attributes that can be adjusted include forecolor, backcolor, font, and content alignment within the cell. Providing a different style enhances the appearance of the DataGrid control.
Item style properties in the DataGrid control are inherited from one item style property to another through a hierarchy. Item style properties set lower in the hierarchy are inherited by item style properties higher in the hierarchy. For example, if you specify a red font for the ItemStyle property, all other item style properties in the DataGrid control will also have a red font. This allows you to provide a common appearance for the control by setting a single item style property. You can override the inherited style settings for an item style property that is higher in the hierarchy by setting its style properties. For example, you can specify a blue font for the AlternatingItemStyle property, overriding the red font specified in the ItemStyle property. The following table lists the hierarchy order from highest to lowest.
Precedence | Style Property |
|---|---|
1 | |
2 | SelectedItemStyle |
3 | |
4 | |
5 |
To specify a custom style for the selected item, place the <SelectedItemStyle> tags between the opening and closing tags of the DataGrid control. You can then list the style attributes within the opening <SelectedItemStyle> tag.
The following code example demonstrates how to use SelectedItemStyle property to set the background color of the selected item in the DataGrid control to yellow.
<%@ Page Language="VB" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <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 rows and add sample data. Dim i As Integer For i = 1 To 9 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_Select(sender As Object, e As EventArgs) Label1.Text = "You selected " & MyDataGrid.SelectedItem.Cells(1).Text & _ ".<br />" & MyDataGrid.SelectedItem.Cells(1).Text & " has an index number of " & _ MyDataGrid.SelectedIndex.ToString() & "." End Sub 'MyDataGrid_Select Sub Select_Button_Click(sender As Object, e As EventArgs) MyDataGrid.SelectedIndex = 4 End Sub 'Select_Button_Click Sub UnSelect_Button_Click(sender As Object, e As EventArgs) MyDataGrid.SelectedIndex = - 1 Label1.Text = "" End Sub 'UnSelect_Button_Click Sub BindGrid() MyDataGrid.DataSource = CartView MyDataGrid.DataBind() End Sub 'BindGrid </script> <head runat="server"> <title>DataGrid Selection Example</title> </head> <body> <form id="form1" runat="server"> <h3>DataGrid Selection Example</h3> <asp:DataGrid id="MyDataGrid" runat="server" BorderColor="black" BorderWidth="1" CellPadding="3" Font-Names="Verdana" Font-Size="8pt" OnSelectedIndexChanged="MyDataGrid_Select" AutoGenerateColumns="false"> <HeaderStyle BackColor="#aaaadd"> </HeaderStyle> <SelectedItemStyle BackColor="Yellow"> </SelectedItemStyle> <Columns> <asp:ButtonColumn HeaderText="Select Item" ButtonType="LinkButton" Text="Select" CommandName="Select"> </asp:ButtonColumn> <asp:BoundColumn HeaderText="Item" ReadOnly="true" DataField="Item"/> <asp:BoundColumn HeaderText="Quantity" DataField="Qty"/> <asp:BoundColumn HeaderText="Price" DataField="Price"/> </Columns> </asp:DataGrid> <br /><br /> <asp:Button id="Button1" Text="Select Item 5" OnClick="Select_Button_Click" runat="server"/> <asp:Button id="Button2" Text="Unselect Item" OnClick="UnSelect_Button_Click" runat="server"/> <br /><br /> <asp:Label id="Label1" runat="server"/> </form> </body> </html>
<%@ Page Language="VB" AutoEventWireup="True"%> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.SqlClient" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>DataGrid SelectedItemStyle Example</title> <script runat="server"> Function CreateDataSource() As ICollection ' Create sample data for the DataGrid control. Dim dt As DataTable = New DataTable() Dim dr As DataRow ' Define the columns of the table. dt.Columns.Add(New DataColumn("IntegerValue", GetType(Integer))) dt.Columns.Add(New DataColumn("StringValue", GetType(String))) dt.Columns.Add(New DataColumn("CurrencyValue", GetType(Double))) ' Populate the table with sample values. Dim i As Integer For i = 0 to 8 dr = dt.NewRow() dr(0) = i dr(1) = "Item " & i.ToString() dr(2) = 1.23 * (i + 1) dt.Rows.Add(dr) Next i ' Create a DataView from the DataTable. Dim dv As DataView = New DataView(dt) Return dv End Function Sub Page_Load(sender As Object, e As EventArgs) ' Load sample data only once when the page is first loaded. If Not IsPostBack Then ItemsGrid.DataSource = CreateDataSource() ItemsGrid.DataBind() End If End Sub Sub IndexChange_Command(sender As Object, e As EventArgs) ' Display the details of the selected item. DetailsLabel.Text = "Item Number: " & ItemsGrid.SelectedItem.Cells(1).Text & "<br />" & _ "Description: " & ItemsGrid.SelectedItem.Cells(2).Text & "<br />" & _ "Price: $" & ItemsGrid.SelectedItem.Cells(3).Text & "<br />" End Sub Sub Selection_Change(sender As Object, e As EventArgs) ' Set the background color for the paging controls section of ' the DataGrid control. ItemsGrid.SelectedItemStyle.BackColor = System.Drawing.Color.FromName(List.SelectedItem.Value) End Sub </script> </head> <body> <form id="form1" runat="server"> <h3>DataGrid SelectedItemStyle Example</h3> Select an item and a backcolor for the selected item. <br /><br /> <asp:DataGrid id="ItemsGrid" BorderColor="Black" ShowFooter="False" CellPadding="3" CellSpacing="0" HeaderStyle-BackColor="#aaaadd" OnSelectedIndexChanged="IndexChange_Command" runat="server"> <SelectedItemStyle BackColor="White"> </SelectedItemStyle> <Columns> <asp:ButtonColumn Text="Select" CommandName="Select"/> </Columns> </asp:DataGrid> <hr /> <table style="border-color:Black; border-width:1" cellspacing="0"> <tr style="background-color:#aaaadd"> <td> Details </td> </tr> <tr> <td> <asp:Label id="DetailsLabel" runat="server" Text="No item selected."/> </td> </tr> </table> <table cellpadding="5"> <tr> <td> Backcolor: </td> </tr> <tr> <td> <asp:DropDownList id="List" AutoPostBack="True" OnSelectedIndexChanged="Selection_Change" runat="server"> <asp:ListItem Selected="True" Value="White"> White </asp:ListItem> <asp:ListItem Value="Silver"> Silver </asp:ListItem> <asp:ListItem Value="DarkGray"> Dark Gray </asp:ListItem> <asp:ListItem Value="Khaki"> Khaki </asp:ListItem> <asp:ListItem Value="DarkKhaki"> Dark Khaki </asp:ListItem> </asp:DropDownList> </td> </tr> </table> </form> </body> </html>
Available since 1.1