十天学会ASP.net之第八天
学习目✈的【de】:初步掌握【wò】DATAGRID的【de】使用📁
以前在ASP中【zhōng】,我们显🔓示大批量数据【liàng shù jù】经常使【jīng cháng shǐ】💇用循环读取记🐙录集的方式,在表格【zài biǎo gé】🚵中【zhōng】插入代码来显示🏡,循环的是<tr>,如果是分页还🐣需要自👵己制作【jǐ zhì zuò】,如果排序更加😦复杂,在ASP.NET中就好【zhōng jiù hǎo】了【le】,一切工【yī qiē gōng】作都可以让【yǐ ràng】DATAGRID来做🔋。
首先看【shǒu xiān kàn】🏆一下【yī xià】DATAGRID的样式【yàng shì】💑方面的属性📞
BackImageUrl="" 背景图片
CellSpacing="" 单元格🎖间距【jiān jù】
CellPadding="" 单元格🎖填充
cssClass="" 使用的CSS样式【yàng shì】
DATAGRID可以自动用表🤭中的字【zhōng de zì】段名放【duàn míng fàng】在显示的记录【de jì lù】📬的头部【de tóu bù】来表示各个单🔽元格所代表的意义【yì yì】,用✊ShowHeader="true/false"来控制【lái kòng zhì】是不是⌚显示,在大多【zài dà duō】数情况【shù qíng kuàng】下我们是不需【shì bú xū】要这个🚢功能的🐥,因为我们数据库中的字【zhōng de zì】段名大多是💟英文的,而我们想在页🦈面输出【miàn shū chū】❇的大多是💟中文名字📸。
下面看【xià miàn kàn】😏一下显示数据【shì shù jù】库内所🔟有记录,就几行代码【dài mǎ】🈁:
<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就是下🎼面的【de】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的版本【de bǎn běn】,这次大🧔家自己来试试【lái shì shì】📄吧:)
假设数【jiǎ shè shù】据库是三个字【sān gè zì】📴段:id,aa,bb
显示的样子就【yàng zǐ jiù】🤕如下🛥:
id | aa | bb |
1 | werwe | rewrwe |
2 | werwe | rewrwe |
我们一定觉得🚟这种显示不满【shì bú mǎn】意🛷,我们有【wǒ men yǒu】两种显🤪示的方式👻(需要包【xū yào bāo】括在<columns></columns>中间【zhōng jiān】):
一🎍、默认的【mò rèn de】列【liè】,我们可🏌以选择不输出所有的🎀字段还【zì duàn hái】可以安排顺序:
<asp:BoundColumn DataField="想要显示的字👁段名">
比如说我们想🌫按照【àn zhào】bb,aa来输出这个表【zhè gè biǎo】,我们这么写【me xiě】🐏
<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就不会【jiù bú huì】自动输【zì dòng shū】出所有📃字段了【zì duàn le】🚻
二【èr】、以模板列,我们可以定制每一个【měi yī gè】🙊单元格😀的样式【de yàng shì】🗣:
<asp:TemplateColumn>
<itemTemplate>
中间是🍾一个表【yī gè biǎo】🗨格,想怎么【xiǎng zěn me】样【yàng】📌就怎么样【yàng】📌
</itemTemplate>
</asp:DataGrid>
或许你们要说【men yào shuō】怎么在表格中输出代码那,可以使用【yòng】🌦<%# DataBinder.Eval(Container.DataItem,"字段名").ToString()%>
下面看🌙一个例子【zǐ】🗨,我们所【wǒ men suǒ】要做的就是把🔽aa,bb两个字💑段放在【duàn fàng zài】一个单元格内显示【xiǎn shì】,就好像下面一😲样【yàng】📌:
1 | werwe rewrwe |
2 | werwe rewrwe |
我们这【wǒ men zhè】样写代【yàng xiě dài】🚨码📏:
<asp:DataGrid
id="dgrdMain"
cellpadding="1"
showheader="false"
autogeneratecolumns="false"
borderwidth="0"
runat="server">
<columns>
<asp:boundcolumn datafield="ii"/> 首先使【shǒu xiān shǐ】🥋用默认的显示🥦方式显示🥦ID
<asp:TemplateColumn> 再使用【zài shǐ yòng】模板来显示🥦后面一列(由AA,BB并列组【bìng liè zǔ】🗿成)
<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>
今天就【jīn tiān jiù】说到这里【lǐ】,明天我【míng tiān wǒ】🌍们来看📌一下DATAGRID的分页显示等功🖲
关键词:ASP.net
阅读本文后您有什么感想? 已有 人给出评价!
- 0
- 0
- 0
- 0
- 0
- 0