<%  int i = 1;%>
 <asp:Repeater ID="hotpic" runat="server"> 
  <ItemTemplate>    
  <%
  if (i==1){
  Response.Write ("<div class='picarea'>");
         }  
         %>
   <div class="circle2">
      <a href="#" target="_self">
      <dl>
     <dt><img src="admin/upload/<%# DataBinder.Eval(Container.DataItem,"pic_path") %>" width="130" height="80" /></dt>
 <dd><%# DataBinder.Eval(Container.DataItem,"a_title") %></dd>
  </dl>
  </a>
   </div>
    
 <%
         if (i%2 == 0){
         Response.Write ("<div class='clear'></div></div>");
         }
        i++;
            Response.Write (i);   
         %>
 </ItemTemplate> 
 </asp:Repeater>
做一行两列显示,新学.net
报错是:当前上下文中不存在名称i
变量作用域的问题
如果把i放到循环中,肯定没错,但是这样的话,i的值就始终每次都不变了如何去处理这样的问题?
Repeater有什么属性可以直接获取到当前为循环的第几次吗?类似序号的功能

解决方案 »

  1.   

    没看懂你想要做什么。repeater有个alternatingitemtemplate可以设置交替行的样式 如你的那个
    <div class='clear'></div></div>
    建议这种东西用itembound来做   itemplate本来就是自动遍历数据源并循环写出的
      

  2.   

    一行两列可以用CSS控制实现 不用这么麻烦吧!
    把层设置好宽度 然后设置FLOAT:LEFT
    接下来循环输出
    <div></div>就可以了
      

  3.   

    我说的是定义的变量i
    为什么放到ItemTemplate就会报错
    只能放到ItemTemplate里面才行
    但是如果放到ItemTemplate里面,i的值就一直都是1了,每次循环都被重新赋值了
      

  4.   

    我说的是定义的变量i 
    为什么放到ItemTemplate就会报错 
    只能放到ItemTemplate里面才行 
    但是如果放到ItemTemplate里面,i的值就一直都是1了,每次循环都被重新赋值了帮帮忙啊~~
      

  5.   

    不回答这类拿着asp.net写asp代码的问题。
      

  6.   

    不要在页面出现<%....%>, 用RepeaterItem的ItemIndex 来实现你的意思。注意: ItemIndex是从0开始计数的。