集思广议!ASP.NET中用表格显示数据库中数据的高效方法!优秀方法的高分!
cfgm 2003-05-13 07:42:10 在传统的ASP中,我们都习惯了这样的数据方式:
比如rs是纪录集
<table>
<%
while not rs.eof
%>
<tr>
<td><img src=good.gif><%=rs("id")%></td>
<td><%=rs("userid")%></td>
<td><%=rs("userpwd")%></td>
<td><%=rs("realname")%></td>
</td>
<%
rs.movenext
wend
%>
这样我们可以在先对表格的样式设计好后,在加入<tr>之间的循环语句,一直以来都觉得很直观!
但是在ASP.NET中,我使用过以下一些方法:
1、DataGrid
将它和数据库进行邦定后,在页面上插入:
<asp:datagrid ID="userdata" ItemStyle-Height="20" ItemStyle-BackColor="#fafafa"
PageSize="20"
PagerStyle-Visible="false"
runat="server"
Width="500"
GridLines="None"
ShowFooter="false"
CellPadding="2"
CellSpacing="1"
Font-Name="宋体"
Font-Size="8pt"
EnableViewState="false"
AutoGenerateColumns="false"
DataKeyField="id"
>
<Columns>
<asp:BoundColumn ItemStyle-Width="150px" HeaderText="" DataField="id" ></asp:BoundColumn>
<asp:BoundColumn ItemStyle-Width="150px" HeaderText="" DataField="id" ></asp:BoundColumn>
<asp:BoundColumn ItemStyle-Width="150px" HeaderText="" DataField="userid" />
<asp:BoundColumn ItemStyle-Width="150px" HeaderText="" DataField="userpwd" />
<asp:BoundColumn ItemStyle-Width="150px" HeaderText="" DataField="realname" />
</Columns>
</asp:datagrid>
首先感觉从代码长度上就比asp多了很多,难道语言的高效率是要牺牲代码空间吗?其次我如果想实现前边的:
<td><img src=good.gif><%=rs("username")%></td>
在一个记录前边加上一张图片,但是在<asp:BoundColumn ItemStyle-Width="150px" HeaderText="" DataField="userid" /> 之间不知道怎么加上图片?忘高手解答!
而且感觉如果以后对表格的整体效果要修改的话,没有使用html构架表格时候在dreamweaver mx中图形界面那么直观,很不适应这种现实数据的方法
2、DataReader
它可以像以前ASP中那样一行一行的读纪录
我在C#中把纪录付给一个数组
while(myReader.Read())
{
userinfo[i] = myReader.GetString(1);
i++;
}
然后在界面中这样的显示:
<table width="700" border="0" cellspacing="0" cellpadding="0">
<%
for (n=0; n<10; n++)
{
%><tr>
<td><%=userinfo[n]%></td>
</tr>
<%}%>
</table>
感觉还是没有ASP中那种方式好用!大家说说自己在ASP.NET编程中一些这方面的经验吧!我感觉以上没有突出ASP.NET强大的地方,希望在高手的指点下领会到ASP.NET真正强大的地方!