sadier

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
原理:用repeater控件,把所有内容都传递到客户端,设置style=display:none,然后通过操作按钮控制客户端脚本执行。


 <HEAD>
 ...
  <script language=javascript>
  function ShowAndHide(ctl)
  {
       var postid = ctl.btnstatus;
       var obj = document.getElementById("div"+postid);
       if (obj != null)
       {
            if (obj.style.display=="")
            {
                 obj.style.display = "none";
            }
            else
            {
                 obj.style.display = "";
            }
       }
  }
  </script>
 </HEAD>



    <asp:repeater id="RecentPosts" runat="server">
         <ItemTemplate>
         <input  type=Button ID="BtnContent" Runat = "server" onclick="javascript:ShowAndHide(this);" btnstatus='<%# DataBinder.Eval(((RepeaterItem)Container).DataItem,"PostID")%>' value = '<%# DataBinder.Eval(((RepeaterItem)Container).DataItem,"Title") %>' >

                <asp:Literal runat = "server"  Text ='<%# "<div id=div"+DataBinder.Eval(((RepeaterItem)Container).DataItem,"PostID").ToString() +" style=display:none >" + DataBinder.Eval(((RepeaterItem)Container).DataItem,"Text").ToString() + "</div>" %>' ID='DescriLit1'>
              </asp:Literal>
     </ItemTemplate>
    </asp:repeater>

这里借用了一个Button 本没有的一个属性btnstatus,因为试了一下ShowAndHide('<%# DataBinder.Eval(((RepeaterItem)Container).DataItem,"PostID")%>')说,服务器表识错误,就随便加了一个属性了。


posted on 2004-10-16 15:55  毛小华  阅读(2425)  评论(0编辑  收藏  举报