DataGrid.HeaderStyle Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene le proprietà di stile della sezione dell'intestazione nel controllo DataGrid.
public:
virtual property System::Web::UI::WebControls::TableItemStyle ^ HeaderStyle { System::Web::UI::WebControls::TableItemStyle ^ get(); };
[System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)]
public virtual System.Web.UI.WebControls.TableItemStyle HeaderStyle { get; }
[<System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)>]
member this.HeaderStyle : System.Web.UI.WebControls.TableItemStyle
Public Overridable ReadOnly Property HeaderStyle As TableItemStyle
Valore della proprietà
Un oggetto TableItemStyle che contiene le proprietà di stile della sezione dell'intestazione nel controllo DataGrid. Il valore predefinito è un oggetto TableItemStyle vuoto.
- Attributi
Esempio
Nell'esempio di codice seguente viene illustrato come utilizzare la HeaderStyle proprietà per impostare il colore di sfondo della sezione intestazione.
<%@ Page Language="C#" 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="C#" runat="server">
ICollection CreateDataSource()
{
DataTable dt = new DataTable();
DataRow dr;
dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
dt.Columns.Add(new DataColumn("DateTimeValue", typeof(string)));
dt.Columns.Add(new DataColumn("BoolValue", typeof(bool)));
for (int i = 0; i < 100; i++) {
dr = dt.NewRow();
dr[0] = i;
dr[1] = "Item " + i.ToString();
dr[2] = DateTime.Now.ToShortDateString();
dr[3] = (i % 2 != 0) ? true : false;
dt.Rows.Add(dr);
}
DataView dv = new DataView(dt);
return dv;
}
void Page_Load(Object sender, EventArgs e)
{
if (chk1.Checked)
MyDataGrid.PagerStyle.Mode = PagerMode.NumericPages;
else
MyDataGrid.PagerStyle.Mode = PagerMode.NextPrev;
BindGrid();
}
void MyDataGrid_Page(Object sender, DataGridPageChangedEventArgs e)
{
MyDataGrid.CurrentPageIndex = e.NewPageIndex;
BindGrid();
}
void BindGrid()
{
MyDataGrid.DataSource = CreateDataSource();
MyDataGrid.DataBind();
ShowStats();
}
void ShowStats()
{
lblEnabled.Text = "AllowPaging is " + MyDataGrid.AllowPaging;
lblCurrentIndex.Text = "CurrentPageIndex is " + MyDataGrid.CurrentPageIndex;
lblPageCount.Text = "PageCount is " + MyDataGrid.PageCount;
lblPageSize.Text = "PageSize is " + MyDataGrid.PageSize;
}
</script>
<head runat="server">
<title>DataGrid Example</title>
</head>
<body>
<h3>DataGrid Example</h3>
<form id="form1" runat="server">
<asp:DataGrid id="MyDataGrid" runat="server"
AllowPaging="True"
PageSize="10"
ShowFooter="true"
OnPageIndexChanged="MyDataGrid_Page"
BorderColor="black"
BorderWidth="1"
GridLines="Both"
CellPadding="3"
CellSpacing="0"
Font-Names="Verdana"
Font-Size="8pt">
<PagerStyle Mode="NumericPages"
HorizontalAlign="Right">
</PagerStyle>
<HeaderStyle BackColor="#aaaadd">
</HeaderStyle>
<FooterStyle BackColor="#aaaadd">
</FooterStyle>
<AlternatingItemStyle BackColor="#eeeeee">
</AlternatingItemStyle>
</asp:DataGrid>
<br />
<asp:Checkbox id="chk1" runat="server"
Text="Show numeric page navigation buttons"
Font-Names="Verdana"
Font-Size="8pt"
AutoPostBack="true"/>
<br />
<table style="background-color:#eeeeee; padding:6">
<tr>
<td style="display:inline">
<asp:Label id="lblEnabled"
runat="server"/><br />
<asp:Label id="lblCurrentIndex"
runat="server"/><br />
<asp:Label id="lblPageCount"
runat="server"/><br />
<asp:Label id="lblPageSize"
runat="server"/><br />
</td>
</tr>
</table>
</form>
</body>
</html>
<%@ 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">
Function CreateDataSource() As ICollection
Dim dt As New DataTable()
Dim dr As DataRow
dt.Columns.Add(New DataColumn("IntegerValue", GetType(Int32)))
dt.Columns.Add(New DataColumn("StringValue", GetType(String)))
dt.Columns.Add(New DataColumn("DateTimeValue", GetType(String)))
dt.Columns.Add(New DataColumn("BoolValue", GetType(Boolean)))
Dim i As Integer
For i = 0 To 99
dr = dt.NewRow()
dr(0) = i
dr(1) = "Item " + i.ToString()
dr(2) = DateTime.Now.ToShortDateString()
If i Mod 2 <> 0 Then
dr(3) = True
Else
dr(3) = False
End If
dt.Rows.Add(dr)
Next i
Dim dv As New DataView(dt)
Return dv
End Function 'CreateDataSource
Sub Page_Load(sender As Object, e As EventArgs)
If chk1.Checked Then
MyDataGrid.PagerStyle.Mode = PagerMode.NumericPages
Else
MyDataGrid.PagerStyle.Mode = PagerMode.NextPrev
End If
BindGrid()
End Sub 'Page_Load
Sub MyDataGrid_Page(sender As Object, e As DataGridPageChangedEventArgs)
MyDataGrid.CurrentPageIndex = e.NewPageIndex
BindGrid()
End Sub 'MyDataGrid_Page
Sub BindGrid()
MyDataGrid.DataSource = CreateDataSource()
MyDataGrid.DataBind()
ShowStats()
End Sub 'BindGrid
Sub ShowStats()
lblEnabled.Text = "AllowPaging is " & MyDataGrid.AllowPaging
lblCurrentIndex.Text = "CurrentPageIndex is " & MyDataGrid.CurrentPageIndex
lblPageCount.Text = "PageCount is " & MyDataGrid.PageCount
lblPageSize.Text = "PageSize is " & MyDataGrid.PageSize
End Sub 'ShowStats
</script>
<head runat="server">
<title>DataGrid Example</title>
</head>
<body>
<h3>DataGrid Example</h3>
<form id="form1" runat="server">
<asp:DataGrid id="MyDataGrid" runat="server"
AllowPaging="True"
PageSize="10"
ShowFooter="true"
OnPageIndexChanged="MyDataGrid_Page"
BorderColor="black"
BorderWidth="1"
GridLines="Both"
CellPadding="3"
CellSpacing="0"
Font-Names="Verdana"
Font-Size="8pt">
<PagerStyle Mode="NumericPages"
HorizontalAlign="Right">
</PagerStyle>
<HeaderStyle BackColor="#aaaadd">
</HeaderStyle>
<FooterStyle BackColor="#aaaadd">
</FooterStyle>
<AlternatingItemStyle BackColor="#eeeeee">
</AlternatingItemStyle>
</asp:DataGrid>
<br />
<asp:Checkbox id="chk1" runat="server"
Text="Show numeric page navigation buttons"
Font-Names="Verdana"
Font-Size="8pt"
AutoPostBack="true"/>
<br />
<table style="background-color:#eeeeee; padding:6">
<tr>
<td style="display:inline">
<asp:Label id="lblEnabled"
runat="server"/><br />
<asp:Label id="lblCurrentIndex"
runat="server"/><br />
<asp:Label id="lblPageCount"
runat="server"/><br />
<asp:Label id="lblPageSize"
runat="server"/><br />
</td>
</tr>
</table>
</form>
</body>
</html>
<%@ Page Language="C#" 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 runat="server">
ICollection CreateDataSource()
{
// Create sample data for the DataGrid control.
DataTable dt = new DataTable();
DataRow dr;
// Define the columns of the table.
dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));
// Populate the table with sample values.
for (int i = 0; i < 5; i++)
{
dr = dt.NewRow();
dr[0] = i;
dr[1] = "Item " + i.ToString();
dr[2] = 1.23 * (i + 1);
dt.Rows.Add(dr);
}
DataView dv = new DataView(dt);
return dv;
}
void Page_Load(Object sender, EventArgs e)
{
// Load sample data only once when the page is first loaded.
if (!IsPostBack)
{
ItemsGrid.DataSource = CreateDataSource();
ItemsGrid.DataBind();
}
}
void Button_Click(Object sender, EventArgs e)
{
// Count the number of selected items in the DataGrid control.
int count = 0;
// Display the selected times.
Message.Text = "You Selected: <br />";
// Iterate through each item (row) in the DataGrid control and determine
// whether it is selected.
foreach (DataGridItem item in ItemsGrid.Items)
{
DetermineSelection(item, ref count);
}
// If no items are selected, display the appropriate message.
if (count == 0)
{
Message.Text = "Not items selected";
}
}
void DetermineSelection(DataGridItem item, ref int count)
{
// Retrieve the SelectCheckBox CheckBox control from the specified item (row) in the
// DataGrid control.
CheckBox selection = (CheckBox)item.FindControl("SelectCheckBox");
// If the item is selected, display the appropriate message and increment the count
// of selected items.
if (selection != null)
{
if (selection.Checked)
{
Message.Text += "- " + item.Cells[1].Text + "<br />";
count++;
}
}
}
void Selection_Change(Object sender, EventArgs e)
{
// Set the background color for the heading and footer sections of
// the DataGrid control.
ItemsGrid.HeaderStyle.BackColor = System.Drawing.Color.FromName(List.SelectedItem.Value);
ItemsGrid.FooterStyle.BackColor = System.Drawing.Color.FromName(List.SelectedItem.Value);
}
</script>
<head runat="server">
<title>DataGrid HeaderStyle and FooterStyle Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>DataGrid HeaderStyle and FooterStyle Example</h3>
Select a backcolor for the header and footer sections.
<br /><br />
<b>Product List</b>
<asp:DataGrid id="ItemsGrid"
BorderColor="black"
BorderWidth="1"
CellPadding="3"
ShowFooter="True"
AutoGenerateColumns="False"
runat="server">
<HeaderStyle BackColor="White">
</HeaderStyle>
<FooterStyle BackColor="White">
</FooterStyle>
<Columns>
<asp:BoundColumn DataField="IntegerValue"
HeaderText="Item"/>
<asp:BoundColumn DataField="StringValue"
HeaderText="Description"/>
<asp:BoundColumn DataField="CurrencyValue"
HeaderText="Price"
DataFormatString="{0:c}">
<ItemStyle HorizontalAlign="Right">
</ItemStyle>
</asp:BoundColumn>
<asp:TemplateColumn HeaderText="Select Item">
<ItemTemplate>
<asp:CheckBox id="SelectCheckBox"
Text="Add to Cart"
Checked="False"
runat="server"/>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
<br /><br />
<asp:Button id="SubmitButton"
Text="Submit"
OnClick = "Button_Click"
runat="server"/>
<br /><br />
<asp:Label id="Message"
runat="server"/>
<hr />
Header and footer backcolor: <br />
<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>
</form>
</body>
</html>
<%@ 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 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(Int32)))
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 4
dr = dt.NewRow()
dr(0) = i
dr(1) = "Item " & i.ToString()
dr(2) = 1.23 * (i + 1)
dt.Rows.Add(dr)
Next i
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 Button_Click(sender As Object, e As EventArgs)
' Count the number of selected items in the DataGrid control.
Dim count As Integer = 0
' Display the selected times.
Message.Text = "You Selected: <br />"
' Iterate through each item (row) in the DataGrid control and determine
' whether it is selected.
Dim item As DataGridItem
For Each item In ItemsGrid.Items
DetermineSelection(item, count)
Next
' If no items are selected, display the appropriate message.
If count = 0 Then
Message.Text = "Not items selected"
End If
End Sub
Sub DetermineSelection(item As DataGridItem, ByRef count As Integer)
' Retrieve the SelectCheckBox CheckBox control from the specified item (row) in the
' DataGrid control.
Dim selection As CheckBox = CType(item.FindControl("SelectCheckBox"), CheckBox)
' If the item is selected, display the appropriate message and increment the count
' of selected items.
If Not selection Is Nothing Then
If selection.Checked Then
Message.Text &= "- " & item.Cells(1).Text & "<br />"
count = count + 1
End If
End If
End Sub
Sub Selection_Change(sender As Object, e As EventArgs)
' Set the background color for the heading and footer sections of
' the DataGrid control.
ItemsGrid.HeaderStyle.BackColor = System.Drawing.Color.FromName(List.SelectedItem.Value)
ItemsGrid.FooterStyle.BackColor = System.Drawing.Color.FromName(List.SelectedItem.Value)
End Sub
</script>
<head runat="server">
<title>DataGrid HeaderStyle and FooterStyle Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>DataGrid HeaderStyle and FooterStyle Example</h3>
Select a backcolor for the header and footer sections.
<br /><br />
<b>Product List</b>
<asp:DataGrid id="ItemsGrid"
BorderColor="black"
BorderWidth="1"
CellPadding="3"
ShowFooter="True"
AutoGenerateColumns="False"
runat="server">
<HeaderStyle BackColor="White">
</HeaderStyle>
<FooterStyle BackColor="White">
</FooterStyle>
<Columns>
<asp:BoundColumn DataField="IntegerValue"
HeaderText="Item"/>
<asp:BoundColumn DataField="StringValue"
HeaderText="Description"/>
<asp:BoundColumn DataField="CurrencyValue"
HeaderText="Price"
DataFormatString="{0:c}">
<ItemStyle HorizontalAlign="Right">
</ItemStyle>
</asp:BoundColumn>
<asp:TemplateColumn HeaderText="Select Item">
<ItemTemplate>
<asp:CheckBox id="SelectCheckBox"
Text="Add to Cart"
Checked="False"
runat="server"/>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
<br /><br />
<asp:Button id="SubmitButton"
Text="Submit"
OnClick = "Button_Click"
runat="server"/>
<br /><br />
<asp:Label id="Message"
runat="server"/>
<hr />
Header and footer backcolor: <br />
<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>
</form>
</body>
</html>
Commenti
Utilizzare questa proprietà per fornire uno stile personalizzato per la sezione intestazione del DataGrid controllo . Gli attributi di stile comuni che possono essere modificati includono forecolor, backcolor, font e allineamento del contenuto all'interno della cella. L'aggiunta di uno stile diverso migliora l'aspetto del DataGrid controllo.
La HeaderStyle proprietà del DataGrid controllo eredita le impostazioni di stile della ControlStyle proprietà . Ad esempio, se si specifica un tipo di carattere rosso per la ControlStyle proprietà, anche la HeaderStyle proprietà avrà un tipo di carattere rosso. In questo modo è possibile fornire un aspetto comune per il controllo impostando una singola proprietà di stile. È possibile eseguire l'override delle impostazioni di stile ereditate impostando la HeaderStyle proprietà . Ad esempio, è possibile specificare un tipo di carattere blu per la HeaderStyle proprietà, sostituendo il tipo di carattere rosso specificato nella ControlStyle proprietà .
Per specificare uno stile personalizzato per la sezione intestazione, posizionare i tag tra i <HeaderStyle>
tag di apertura e chiusura del DataGrid controllo. È quindi possibile elencare gli attributi di stile all'interno del tag di apertura <HeaderStyle>
.
Nota
La ShowHeader proprietà deve essere impostata su true
affinché questa proprietà sia visibile.