我展示了一些图片,并且附带了滚动效果
数据控件为 Repeater
效果如下:
<div id="demo" style="margin: 0px; overflow:hidden; width: 740px">
  <table height="50" width="750" bgcolor="#f5f5f5">
     <tr>
        <td id="demo1">
          <table cellspacing="0" >
            <tr>
              <asp:Repeater ID="re" runat="server" onitemcommand="re_ItemCommand">
                <ItemTemplate>
                  <td width="100" height="50">
           <a href="#"><img src="<%# Eval("PhotoUrl") %>" border="0" style="width:90px; height:50px"></a>  
                    <asp:ImageButton ID="ImageButton1" runat="server" ImageUrl='<%# Eval("PhotoUrl") %>' Height="50px" Width="88px"/>
                  </td>
                 </ItemTemplate> 
              </asp:Repeater>                     
            </tr>
           </table>
         </td>
       <td id="demo2"></td>
      </tr>
    </table>           
 </div><a>标签 和<imageButton>标签 不能并存 也就是2者只显示一个就可以,因为我做了下测试 所以写了2个标签来比较效果下边是要模式化显示的层:
<div ID="Panel1" runat="server" style="height:200px; width:380px;">
   <div id="tu" style="background-color:Green; margin-top:20%;">
      <asp:ImageButton ID="ImageButton2" runat="server" 
                    ImageUrl="~/custom/images/6.jpg" />
      <asp:ImageButton ID="ImageButton3" runat="server" 
                    ImageUrl="~/custom/images/jiantou.jpg"
                     />
   </div>
</div>
<input type="hidden" id="hid" runat="server" />这个层 用ModalPopupExtender 来模式化显示
<cc1:ModalPopupExtender ID="ModalPopupExtender1" runat="server"
          TargetControlID="hid" PopupControlID="Panel1" DropShadow="true"  CancelControlID="ImageButton2"  PopupDragHandleControlID="Panel1" BackgroundCssClass="ModalBackground"  >
</cc1:ModalPopupExtender>好了 问题来了
1、如果在Repeater 中的是<ImageButton>控件 那么在Repeater的ItemCommand事件中 用:ModalPopupExtender1.Show(); 这个方法可以控制层的显示 但是 在层中的2个按钮<ImageButton2>,<ImageButton3>都会让这个层隐藏,并且每次点击滚动的图片(也就是Repeater中的<ImageButton>) 都会令页面刷新,也就是说 当图片滚动到第5张的时候 点击某一张图片 则会刷新页面,另图片从新在第一张开始滚动,我想要的效果是 点击图片 页面不刷新,图片该滚滚,不在第一张重新滚。
2、如果在Repeater 中的是<a>标签,那么页面不刷新,图片接茬滚,但是我怎么控制层的模式化显示呢? 即使显示出来了,那么 要如何设置层中的2个按钮 让一个按钮隐藏模式化层,一个按钮做其他事情呢?样式
 .ModalBackground
        {
            background-color:#6699ff;
            filter:alpha(opacity=70);
            opacity:.7;
        }
滚动效果的JavaScript 代码
<script type="text/jscript" language="javascript">
         var speed=15
         demo2.innerHTML=demo1.innerHTML
         function Marquee(){
         if(demo2.offsetWidth-demo.scrollLeft<=0)
         demo.scrollLeft-=demo1.offsetWidth
         else{
         demo.scrollLeft++
         }
         }
         var MyMar=setInterval(Marquee,speed)
         demo.onmouseover=function() {clearInterval(MyMar)}
         demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)}
</script>

解决方案 »

  1.   

    没人回答 我来说说呗
    看了半天 2种思路
    1.js实现 简单很
    2.web服务器控件实现 依然简单
    我只说web 给个思路就行了 点击肯定回传 回传肯定刷新重来 我不知道你的图片哪里来的
    第一次加载 放进list里面存进viewstate里面
    点击之后imagebutton做2件事 将图片标记id存进list里面 第二件事打开模式div
    在回传中(ispostback)写上从标记id开始从新图片循环
    在加上ajax看看 如果有问题在看着改吧
      

  2.   

    补充下没考虑细致
    你应该写个方法将list内的元素从所标记的id开始重新排序
    然后repeater重新绑定数据源这样应该可以了