十(shí)天學(xué)會ASP.net之第八天
學習目的:初(chū)步(bù)掌握(wò)DATAGRID的使用
以(yǐ)前在ASP中,我們顯示大批量數據經(jīng)常使用循環讀取記錄集的方式(shì),在表格(gé)中插入代碼來(lái)顯示,循環的是<tr>,如果是(shì)分頁還需要自己製作,如果排序更加複雜,在ASP.NET中就好了(le),一切工作都可以讓DATAGRID來做。
首先(xiān)看一下DATAGRID的(de)樣式方麵的屬性
BackImageUrl="" 背景圖片
CellSpacing="" 單元(yuán)格間距
CellPadding="" 單(dān)元格填充
cssClass="" 使用的CSS樣式
DATAGRID可以自動用表中的字段名放在顯示的記錄的頭部來表示各個單元(yuán)格所代表的意義,用ShowHeader="true/false"來控(kòng)製是不是顯示,在大多數情況下我們(men)是不(bú)需要這個功能的(de),因為我們數據庫中的字段名大多是英文的,而我們想在頁麵輸出(chū)的大多是中文名字。
下麵看一下顯示數據庫內所有記錄,就幾行代(dài)碼:
<script runat="server" language="c#">
void Page_Load()
{
string strConnection="Provider=Microsoft.Jet.OleDb.4.0;Data Source=";
strConnection+=Server.MapPath("guestbook.mdb");
OleDbConnection objConnection=new OleDbConnection(strConnection);
OleDbCommand objCommand1 = new OleDbCommand("select * from guestbook",objConnection);
objConnection.Open();
dgrdMain.DataSource=objCommand1.ExecuteReader();//dgrdMain就是(shì)下麵的DATAGRID的(de)ID
dgrdMain.DataBind();
objConnection.Close();
}
</script>
<html>
<body>
<asp:DataGrid
id="dgrdMain"
cellpadding="1"
showheader="true"
borderwidth="0"
runat="server"
/>
</body>
</html>
至於VB的版本,這次大家自己來試試吧:)
假設數據庫是三個字段:id,aa,bb
顯示的樣子就如下(xià):
id | aa | bb |
1 | werwe | rewrwe |
2 | werwe | rewrwe |
我們一定覺得這種顯示不滿意,我(wǒ)們有兩種顯示的方式(需要包括在(zài)<columns></columns>中間):
一、默認的列,我們可以選擇不輸出所有的字段還可以安排順序:
<asp:BoundColumn DataField="想要顯示的字(zì)段名">
比如說我(wǒ)們想按照bb,aa來輸出這個表,我們這麽(me)寫
<asp:DataGrid
id="dgrdMain"
cellpadding="1"
showheader="true"
autogeneratecolumns="false"
borderwidth="0"
runat="server">
<columns>
<asp:boundcolumn datafield="bb"/>
<asp:boundcolumn datafield="bb"/>
</columns>
</asp:datagrid>
注意:使用了autogeneratecolumns="false"以後DATAGRID就不會自動輸出(chū)所有字段了
二、以模板(bǎn)列,我們可以定製每一個單元格的樣式(shì):
<asp:TemplateColumn>
<itemTemplate>
中(zhōng)間是一個表格,想怎麽樣就怎麽(me)樣
</itemTemplate>
</asp:DataGrid>
或許你們要說怎麽在表格(gé)中輸出代碼那,可以使用<%# DataBinder.evals(Container.DataItem,"字段名").ToString()%>
下麵看一個例子,我們所要做的(de)就是把aa,bb兩個字段放在一個單元格內顯示(shì),就好(hǎo)像下麵一樣(yàng):
1 | werwe rewrwe |
2 | werwe rewrwe |
我們這樣寫代碼:
<asp:DataGrid
id="dgrdMain"
cellpadding="1"
showheader="false"
autogeneratecolumns="false"
borderwidth="0"
runat="server">
<columns>
<asp:boundcolumn datafield="ii"/> 首先使用默認的顯示方式顯示ID
<asp:TemplateColumn> 再使(shǐ)用模板來顯示後麵一列(由AA,BB並列組成(chéng))
<itemTemplate>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td><%# Container.DataItem("aa")%></td>
</tr>
<tr>
<td><%# Container.DataItem("bb")%></td>
</tr>
</table>
</itemTemplate>
</asp:DataGrid>
</columns>
</asp:datagrid>
今天就說到這裏,明天(tiān)我們來看一下DATAGRID的(de)分頁顯示(shì)等功
關鍵詞:ASP.net
閱讀(dú)本文後您有什麽感想? 已有 人給出評(píng)價!
- 0
- 0
- 0
- 0
- 0
- 0