asp.net 修改代码!
private int i = 5;
protected void dlSupplements_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (i % 4== 0)
{
e.Item.Controls.Add(new LiteralControl("<div class=\"One_dashed\"></div>"));
}
i++;
}
修改代码,要求在一行上显示3条数据时就在下行添加一条虚线“<div class=\"One_dashed\"></div>”
显示一条数据时也在下行添加一条虚线
追问:我用的是DataList控件
<asp:DataList ID="dlSupplements" runat="server"
HorizontalAlign="Left" RepeatColumns="3" RepeatDirection="Horizontal"
>
<ItemTemplate>
<div class="One_img">
<img src="<%# DataBinder.Eval(Container.DataItem, "tidbits_address")%>" alt="s1" />
</div>
<div id="Div1" runat="server" class="float_left_dashed" visible="<%# (Container.ItemIndex+1) %3==0%>"></div>
</ItemTemplate>
</asp:DataList>
为什么它实现的效果是在第三个图的下面才有虚线啊,而不是从第一到第三个图的下面都有?
答案:你可以在前台定义一个div根据当前的行号判断这个div是否在客户端生成html代码 代码如下
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
int[] strArr = new int[] { 21, 32, 42, 24, 65, 123, 43, 251, 23, 160 };
Repeater1.DataSource = strArr;
Repeater1.DataBind();
}
</script>
<html xmlns=" http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<style type="text/css">
.item
{
border: 1px solid gray;
width: 95px;
height: 40px;
margin: 5px 0 0 5px;
float: left;
}
.line
{
width: 305px;
height: 1px;
margin: 5px;
border-bottom: dashed 1px gray;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<div style="width: 310px;">
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<div class="item">
<%#Page.GetDataItem() %>
</div>
<%--Container为Repeater的当前行--%>
<div runat="server" class="line" id="line" visible="<%# (Container.ItemIndex+1) %3==0%>">
</div>
</ItemTemplate>
</asp:Repeater>
</div>
</div>
</form>
</body>
</html>
上一个:asp.net视频教程
下一个:ASP.net 数据库问题