1.DataGrid控件不用模板时显示头部文字和超链接:
<asp:DataGrid
ID="dgrdLinks"
AutoGenerateColumns="False"
EnableViewState="False"
CellPadding="10"
Runat="Server">
<Columns>
<asp:HyperLinkColumn
DataNavigateUrlField="link_url"
DataTextField="link_title"
HeaderText="链接标题"
HeaderStyle-Font-Name="Arial"/>
</Columns>
</asp:DataGrid> //DataGrid默认时显示header,不显示footer的
2.DataGrid的GridLines=none时是没有单元格线的....BackImgeUrl是背景图片的地址.
3.DataGrid的style....同样可以对DataGrid的个别列进行样式设置
<asp:DataGrid
ID="dgrdTitles"
CellPadding="10"
BorderStyle="Dashed" //虚线框
BorderColor="blue"
BorderWidth="8px"
HeaderStyle-Font-Name="Arial"
HeaderStyle-Font-Bold="True"
HeaderStyle-BackColor="lightyellow"
ItemStyle-Font-Name="Arial"
ItemStyle-Font-Size="10pt"
AlternatingItemStyle-BackColor="AliceBlue"
Runat="Server" />
4.DataGrid对列进行排序(必须将AllowSorting设为True,并要响应一个SortCommand事件)
前台:
<asp:DataGrid
ID="dgrdTitles"
AllowSorting="True"
OnSortCommand="dgrdTitles_SortCommand"
AutoGenerateColumns="False"
CellPadding="10"
Runat="Server">
<Columns>
<asp:BoundColumn
DataField="Title"
HeaderText="Sort Titles"
SortExpression="title"/>
<asp:BoundColumn
HeaderText="Sort Price"
DataField="price"
DataFormatString="{0:c}"
SortExpression="price"/>
<asp:BoundColumn
DataField="Notes" />
</Columns>
</asp:DataGrid>
后台:
void Page_Load(Object sender , EventArgs e)
{
if (! IsPostBack ) {
BindDataGrid( "Title" );
}
}
void BindDataGrid( string strSortField ) {
SqlConnection conPubs;
SqlCommand cmdSelect;
conPubs = new SqlConnection( @"Server=localhost;Integrated Security=SSPI;Database=Pubs" );
cmdSelect = new SqlCommand( "Select * From Titles Order By " + strSortField, conPubs );
conPubs.Open();
dgrdTitles.DataSource = cmdSelect.ExecuteReader();
dgrdTitles.DataBind();
conPubs.Close();
}
void dgrdTitles_SortCommand( object s, DataGridSortCommandEventArgs e ) {
BindDataGrid( e.SortExpression );
}
5.DataGrid对数据进行分页显示(必须将AllowPaging设为True,并要响应一个PageIndexChanged事件)
前台:
<asp:DataGrid
ID="dgrdProducts"
AllowPaging="True"
AllowCustomPaging="True"
PageSize="3"
OnPageIndexChanged="dgrdProducts_PageIndexChanged"
PagerStyle-Mode="NumericPages"
CellPadding="3"
Runat="Server" />
后台:
SqlConnection conNorthwind;
string strSelect;
int intStartIndex;
int intEndIndex;
void Page_Load(Object sender , EventArgs e)
{
SqlCommand cmdSelect;
conNorthwind = new SqlConnection( @"Server=localhost;Integrated Security=SSPI;Database=Northwind" );
if (! IsPostBack )
{
// Get Total Pages
strSelect = "Select Count(*) From Products";
cmdSelect = new SqlCommand( strSelect, conNorthwind );
conNorthwind.Open();
dgrdProducts.VirtualItemCount = ( (int)cmdSelect.ExecuteScalar() / dgrdProducts.PageSize );
conNorthwind.Close();
BindDataGrid();
}
}
void BindDataGrid ()
{
SqlDataAdapter dadProducts;
DataSet dstProducts;
intEndIndex = intStartIndex + dgrdProducts.PageSize;
strSelect = "Select * From Products Where ProductID > @startIndex And ProductID <= @endIndex Order By ProductID";
dadProducts = new SqlDataAdapter( strSelect, conNorthwind );
dadProducts.SelectCommand.Parameters.Add( "@startIndex", intStartIndex );
dadProducts.SelectCommand.Parameters.Add( "@endIndex", intEndIndex );
dstProducts = new DataSet();
dadProducts.Fill( dstProducts );
dgrdProducts.DataSource = dstProducts;
dgrdProducts.DataBind();
}
void dgrdProducts_PageIndexChanged( object s, DataGridPageChangedEventArgs e ) {
intStartIndex = ( e.NewPageIndex * dgrdProducts.PageSize );
dgrdProducts.CurrentPageIndex = e.NewPageIndex;
BindDataGrid();
}
6.DataGrid大类控制小类....
前台:
<asp:DataGrid
ID="dgrdCategories"
OnItemCommand="dgrdCategories_ItemCommand"
DataKeyField="CategoryID"
AutoGenerateColumns="False"
SelectedItemStyle-BackColor="LightGreen"
ShowHeader="False"
Runat="Server">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:LinkButton
Text='<%# DataBinder.Eval(Container.DataItem, "CategoryName") %>'
Runat="Server"/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="Description" />
</Columns>
</asp:DataGrid>
<p>
<asp:DataGrid
ID="dgrdProducts"
HeaderStyle-BackColor="yellow"
Runat="Server" />
后台:
void Page_Load(Object sender, EventArgs e)
{
BindMasterGrid();
}
void BindMasterGrid (){
SqlConnection conNorthwind;
SqlCommand cmdSelect;
conNorthwind = new SqlConnection( @"Server=localhost;Integrated Security=SSPI;Database=Northwind" );
cmdSelect = new SqlCommand( "Select * From Categories", conNorthwind );
conNorthwind.Open();
dgrdCategories.DataSource = cmdSelect.ExecuteReader();
dgrdCategories.DataBind();
conNorthwind.Close();
}
void BindDetailGrid( int intCatID ) {
SqlConnection conNorthwind;
string strSelect;
SqlCommand cmdSelect;
conNorthwind = new SqlConnection( @"Server=localhost;Integrated Security=SSPI;Database=Northwind" );
strSelect = "Select * From Products Where CategoryID=@catID";
cmdSelect = new SqlCommand( strSelect, conNorthwind );
cmdSelect.Parameters.Add( "@catID", intCatID );
conNorthwind.Open();
dgrdProducts.DataSource = cmdSelect.ExecuteReader();
dgrdProducts.DataBind();
conNorthwind.Close();
}
void dgrdCategories_ItemCommand( object s, DataGridCommandEventArgs e ) {
int intCatID;
intCatID = Convert.ToInt32(dgrdCategories.DataKeys[ e.Item.ItemIndex ]);
dgrdCategories.SelectedIndex = e.Item.ItemIndex;
BindDetailGrid( intCatID );
}