十天學會ASP.net之第八天

來源:互聯網
上載者:User
asp.net 學習目的:初步掌握DATAGRID的使用

以前在ASP中,我們顯示大批量資料經常使用迴圈讀取記錄集的方式,在表格中插入代碼來顯示,迴圈的是<tr>,如果是分頁還需要自己製作,如果排序更加複雜,在ASP.NET中就好了,一切工作都可以讓DATAGRID來做。

首先看一下DATAGRID的樣式方面的屬性
BackImageUrl="" 背景圖片
CellSpacing="" 儲存格間距
CellPadding="" 儲存格填補值
cssClass="" 使用的CSS樣式

DATAGRID可以自動用表中的欄位名放在顯示的記錄的頭部來表示各個儲存格所代表的意義,用ShowHeader="true/false"來控制是不是顯示,在大多數情況下我們是不需要這個功能的,因為我們資料庫中的欄位名大多是英文的,而我們想在頁面輸出的大多是中文名字。

下面看一下顯示資料庫內所有記錄,就幾行代碼:


<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就是下面的DATAGRID的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
顯示的樣子就如下:


id aa bb
1 werwe rewrwe
2 werwe rewrwe



我們一定覺得這種顯示不滿意,我們有兩種顯示的方式(需要包括在<columns></columns>中間):

一、預設的列,我們可以選擇不輸出所有的欄位還可以安排順序:
<asp:BoundColumn DataField="想要顯示的欄位名">
比如說我們想按照bb,aa來輸出這個表,我們這麼寫

<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就不會自動輸出所有欄位了。

二、以模板列,我們可以定製每一個儲存格的樣式:
<asp:TemplateColumn>
<itemTemplate>
中間是一個表格,想怎麼樣就怎麼樣
</itemTemplate>
</asp:DataGrid>
或許你們要說怎麼在表格中輸出代碼那,可以使用<%# DataBinder.Eval(Container.DataItem,"欄位名").ToString()%>
下面看一個例子,我們所要做的就是把aa,bb兩個欄位放在一個儲存格內顯示,就好像下面一樣:


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> 再使用模板來顯示後面一列(由AA,BB並列組成)
<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>

今天就說到這裡,明天我們來看一下DATAGRID的分頁顯示等功能


相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。