ASP.NET DataList控件的了解与使用
DataList控件概述
看了些帖子,有说到和Repeater控件类似,博主刚接触ASP.NET没多久,先学了DataList,还没接触过Repeater控件,就记录下所学所得。
DataList控件可以使用模板及定义样式来显示数据,并且还能对数据进行选择、删除及编辑。相比GridView控件,DataList在显示数据时更为灵活,这归因于DataList的特点----通过模板来定于数据的显示格式。
DataList控件中,可以为项、交替项、选定项和编辑项创建模板,也可以对标题、脚注和分隔模板自定义外观。对此,DataList支持以下模板:
- ItemTemplate: 为DataList中的项提供内容和布局。
- SeperatorTemplate: 为DataList中的分隔符提供内容和布局,未定义则不显示分隔符。
以下模板若没有定义,默认使用ItemTemplate。
- AlternatingItemTemplate: 为DataList中的交替项提供内容和布局。
- EditItemTemplate: 为DataList中的当前编辑项提供内容和布局。
- FooterTemplate: 为DataList中的脚注部分提供内容和布局。
- HeaderTemplate: 为DataList中的页眉节提供内容和布局。
- SelectedItemTemplate: 为DataList中的交替项提供内容和布局。
使用DataList绑定数据源
DataList控件绑定数据源方法和GridView是一样的,但是需要通过设计DataList控件的模板来显示相应的数据。这里在页面加载方法中绑定数据源,代码如下:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "server=主机名\\实例名;uid=用户名;pwd=密码;database=数据库名";
string sqlStr = "select * from tb_login";
SqlDataAdapter sda = new SqlDataAdapter(sqlStr, conn);
DataSet ds = new DataSet();
sda.Fill(ds);
DataList1.DataSource = ds;
DataList1.DataBind();
}
}
设计DataList控件模板
1.在前台页面设计中添加DataList控件,代码联想直接带出一个空的ItemTemplate,这个模板是必须存在的。
<asp:DataList ID="DataList1" runat="server">
<ItemTemplate>
</ItemTemplate>
</asp:DataList>
2.在DataList控件中添加页眉设计
<asp:DataList ID="DataList2" runat="server">
<HeaderTemplate>
<table border="1" cellpadding="0" cellspacing="0" style="width: 300px; text-align: center;">
<tr>
<td colspan="3" style="font-size: 16pt; color: #006600; text-align: center;">使用DataList控件绑定数据</td>
</tr>
<tr>
<td style="height: 19px; width: 50px; color: #669900;">编号</td>
<td style="height: 19px; width: 50px; color: #669900;">姓名</td>
<td style="height: 19px; width: 150px; color: #669900;">密码</td>
</tr>
</table>
</HeaderTemplate>
<ItemTemplate>
</ItemTemplate>
</asp:DataList>
效果如下:
3.ItemTemplate模板设计如下:
<ItemTemplate>
<table border="1" cellpadding="0" cellspacing="0" style="width: 300px; color: #000000; text-align: center;">
<tr>
<td style="height: 19px; width: 50px; color: #669900;">
<asp:Label ID="lblID" Text='<%#Eval("id")%>' runat="server" />
</td>
<td style="height: 19px; width: 50px; color: #669900;">
<asp:Label ID="lblName" Text='<%#Eval("name")%>' runat="server" />
</td>
<td style="height: 19px; width: 150px; color: #669900;">
<asp:Label ID="lblPass" Text='<%#Eval("pass")%>' runat="server" />
</td>
</tr>
</table>
</ItemTemplate>
效果如下:
运行效果如下:
页脚Footer模板这边就不作阐述了,与页眉Header部分类似。
参考
【W3School ASP.NET - DataList 控件】https://www.w3school.com.cn/aspnet/aspnet_datalist.asp
【DataList控件的使用】 https://www.cnblogs.com/sunxi/articles/2571667.html