当前位置:编程学习 > C#/ASP.NET >>

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 数据库问题

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,