动网论坛
点击帖子列表标题左面的向下箭头展开显示回复的详细信息。
具体的功能就是在每行的第一列前添加一个按钮,点击后在此行下面显示具体详细的信息。
想了一下,如果在模板列里放一个div这样在div显示出来的时候只是在此列里,没法是在整行上,不知道要怎么实现让这个div是在一个新的tr里。
点击帖子列表标题左面的向下箭头展开显示回复的详细信息。
具体的功能就是在每行的第一列前添加一个按钮,点击后在此行下面显示具体详细的信息。
想了一下,如果在模板列里放一个div这样在div显示出来的时候只是在此列里,没法是在整行上,不知道要怎么实现让这个div是在一个新的tr里。
<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>
<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 显示一下数据就行了
repeater
+1
本群新开,欢迎dotnet程序员加入,我们致力于营造一个好的学习交流氛围,不管你是高手还是菜鸟,只要你虚心好学,我们都诚挚的欢迎您。
<Columns>
<asp:TemplateField>
<ItemTemplate>
<table style="width: 100%;">
<tr>
<td>
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td colspan=“3”>
</td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
gridview的 </ItemTemplate>
</asp:TemplateField>跟repeater一样的吧