asp.net的jQuery 表格展开伸缩

引用

C#

C#经验技巧宝典代码的259页实现查看0458光盘11\EX11_15 DataList控件中的数据详细信息。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
 <title></title>
 <style>
     table { border:0;border-collapse:collapse;}
     td { font:normal 12px/17px Arial;padding:2px;width:100px;}
     th { font:bold 12px/17px Arial;text-align:left;padding:4px;border-bottom:1px solid #333;width:100px;}
     .parent { background:#FFF38F;cursor:pointer;}  /* 偶数行样式*/
     .odd { background:#FFFFEE;} /* 奇数行样式*/
     .selected { background:#FF6500;color:#fff;}
 </style>
 <!--   引入jQuery -->
 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" type="text/javascript"></script>
 <script type="text/javascript">
 $(function(){
     $('tr.parent').click(function(){   // 获取所谓的父行
             $(this)
                 .toggleClass("selected")   // 添加/删除高亮
                 .siblings('.child_'+this.id).toggle();  // 隐藏/显示所谓的子行
     }).click();
 })
 </script>
 </head>
 <body>
     <table>
         <thead>
             <tr><th>姓名</th><th>性别</th><th>暂住地</th></tr>
         </thead>
         <tbody>
             <tr class="parent" id="row_01"><td colspan="3">前台设计组</td></tr>
             <tr class="child_row_01"><td>张山</td><td>男</td><td>浙江宁波</td></tr>
             <tr class="child_row_01"><td>李四</td><td>女</td><td>浙江杭州</td></tr>
 
             <tr class="parent" id="row_02"><td colspan="3">前台开发组</td></tr>
             <tr class="child_row_02"><td>王五</td><td>男</td><td>湖南长沙</td></tr>
             <tr class="child_row_02"><td>找六</td><td>男</td><td>浙江温州</td></tr>
 
             <tr class="parent" id="row_03"><td colspan="3">后台开发组</td></tr>
             <tr class="child_row_03"><td>Rain</td><td>男</td><td>浙江杭州</td></tr>
             <tr class="child_row_03"><td>MAXMAN</td><td>女</td><td>浙江杭州</td></tr>
         </tbody>
     </table>
 </body>
 </html>

 通过此例子,想像asp.net中的Repeater做成展开伸缩的功能,想要点击每行展开伸缩当前行的详细信息,则必需通过每行的不同class或者ID来区别,那么在表格生成的时候,就要生成不同的class或者ID

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">
</script>

<script>
    $(document).ready(function () {
        $("tr").click(function () {   // 获取所谓的父行
            $("#pp" + this.id).toggle(1000);
            //                 .toggleClass("selected")   // 添加/删除高亮
            //               alert(this.id);
            //                 .siblings("#pp" + this.id).toggle();  // 隐藏/显示所谓的子行

            //         }).click();
        });
    });
</script>



    </head>
<body>
    <form id="form1" runat="server">

    <asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1">
    <HeaderTemplate>
<table border="1" width="100%">
<tr>
<th>orderno</th>
<th>product_no</th>
<th>color</th>
<th>product_size</th>
<th>product_class</th>

</tr>
</HeaderTemplate>

<ItemTemplate>
<p>
<tr id="<%#Eval("orderno") %>">
<td><table><tr><td><p id="ppp">★</p></td><td><%#Eval("orderno")%></td></tr></table></td>
<td><%#Eval("product_no")%></td>
<td><%#Eval("color")%></td>
<td><%#Eval("product_size")%></td>
<td><%#Eval("product_class")%></td>
</tr>
<tr id="pp<%#Eval("orderno") %>">
<td colspan="5">
<%#Eval("brand") %>
</td>
</tr>
</p>
</ItemTemplate>

<FooterTemplate>
</table>
</FooterTemplate>
    </asp:Repeater>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:shopConnectionString %>" 
        SelectCommand="SELECT top 50  [orderno], [out_trade_no], [product_class], [brand], [product_no], [product_size], [color], [number], [price], [isems] FROM [tbl_order] order by id desc ">
    </asp:SqlDataSource>
    <br />
    <asp:Button ID="Button4" runat="server" Text="Button" />
    </form>
</body>
</html>

 

posted @ 2013-03-06 14:24  小锋神  阅读(1708)  评论(0编辑  收藏  举报