动网论坛
点击帖子列表标题左面的向下箭头展开显示回复的详细信息。
具体的功能就是在每行的第一列前添加一个按钮,点击后在此行下面显示具体详细的信息。
想了一下,如果在模板列里放一个div这样在div显示出来的时候只是在此列里,没法是在整行上,不知道要怎么实现让这个div是在一个新的tr里。

解决方案 »

  1.   


    <table>
            <asp:ListView ID="ListView1" runat="server" ItemPlaceholderID="asd" >
            <LayoutTemplate>
            <div runat="server" id="asd"></div>
            </LayoutTemplate>
            <ItemTemplate>
            <tr>
            <td><input type="button" id="dd" value="展开" onclick="document.getElementById('divid<%#Eval("name") %>').style.display='block';" /><%#Eval("name") %></td><td><%#Eval("sex") %></td><td><%#Eval("age") %></td>
            </tr>
            <tr id="divid<%#Eval("name") %>" style=" display:none">
            <td colspan="3">asdasdasd</td>
            </tr>
            </ItemTemplate>
            
            </asp:ListView>
            </table>
      

  2.   

    可以, 不过个人建议使用repeater
      

  3.   

    <asp:repeater id="rp_Level1" Runat="server">
    <HeaderTemplate>
    <table id="table1" width="98%">
    </HeaderTemplate>
    <ItemTemplate>
    <tr style="cursor:hand" >
    <td style="BACKGROUND-COLOR: #ccffff;text-align:left">
    <input type="checkbox" id="cb_all" value='tr_<%# DataBinder.Eval(Container.DataItem,"ID","{0}")%>' onclick="selectAll(this.value,this)">
    <label onclick="listToggle(this.value,this)" value='tr_<%# DataBinder.Eval(Container.DataItem,"ID","{0}")%>'><%# DataBinder.Eval(Container.DataItem,"DirectoryName","{0}")%>(点击展开)</label>
    </td>
    </tr>
    <tr id='tr_<%# DataBinder.Eval(Container.DataItem,"ID","{0}")%>'  class="trlist" >
    <td style="TEXT-INDENT: 10pt;text-align:left">
    <asp:Repeater ID="rp_Level2" Runat="server">
    <ItemTemplate>
    <asp:CheckBox CssClass="cb_list" Runat="server" ID="cb_Right"  ToolTip='<%# DataBinder.Eval(Container.DataItem,"ID","{0}") %>'  Text='<%# DataBinder.Eval(Container.DataItem,"DirectoryName","{0}") %>'>
    </asp:CheckBox>

    </ItemTemplate>
    </asp:Repeater>
    <input id="hd_DirectoryID" runat="server" value='<%# DataBinder.Eval(Container.DataItem,"ID","{0}")%>' type="hidden"  />
    </td>
    </tr>
    </ItemTemplate>
    <FooterTemplate>
    </table>
    </FooterTemplate>
    </asp:repeater>
    cs 代码绑定 
    private void rp_Level1_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
    {
    if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
    {
    Repeater rp_Level2=(Repeater)e.Item.FindControl("rp_Level2");
    System.Web.UI.HtmlControls.HtmlInputHidden hd_DirectoryID=(System.Web.UI.HtmlControls.HtmlInputHidden)e.Item.FindControl("hd_DirectoryID");
    if(rp_Level2!=null)
    {
    DataTable dt= new Inverst.BLL.ModuleDirectory().GetList(nsystemversion,int.Parse(hd_DirectoryID.Value.Trim()));
    rp_Level2.ItemDataBound+=new RepeaterItemEventHandler(rp_Level2_ItemDataBound);
    if(dt!=null&&dt.Rows.Count>0)
    {
    rp_Level2.DataSource=dt;
    rp_Level2.DataBind();
    }
    }
    }
    }
    点击展开 那里是你用js 显示一下数据就行了
      

  4.   

    感觉都可以实现!
    repeater
    +1
      

  5.   

    GridView 也可以做 动态插入一行 tr 比较麻烦推荐使用repeater新群 DotNet Programmer 群号 112850311
    本群新开,欢迎dotnet程序员加入,我们致力于营造一个好的学习交流氛围,不管你是高手还是菜鸟,只要你虚心好学,我们都诚挚的欢迎您。
      

  6.   

    <asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1">
                <Columns>
                    <asp:TemplateField>
                        <ItemTemplate>
                            <table style="width: 100%;">
                                <tr>
                                    <td>
                                        &nbsp;
                                    </td>
                                    <td>
                                        &nbsp;
                                    </td>
                                    <td>
                                        &nbsp;
                                    </td>
                                </tr>
                                <tr>
                                    <td colspan=“3”>
                                        &nbsp;
                                    </td>
                                </tr>
                            </table>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>
    gridview的  </ItemTemplate>
                    </asp:TemplateField>跟repeater一样的吧