嵌套repeater的隐藏与显示
<repeater1><table>
<tr>
<td>
绑定的数据,比如标题什么的
</td>
<tr>
<tr>
<repeater2>
<table>
<tr>
<td>
数据绑定,每个标题下显示的内容
<td>
</tr>
<table>
</repeater2>
<tr>
<table>
</repeater1>
隐藏所有内容
效果就是点击标题时 显示相应标题下面的内容
求各位大侠帮帮忙,在下找了好多,都达不到想要的效果 --------------------编程问答--------------------
<script src="jquery-1.3.2-vsdoc2.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$(".aa").toggle(function() {
$(this).next().find('div').animate({
height: 'hide',
opacity: 'hide'
}, 'slow');
}, function() {
$(this).next().find('div').animate({
height: 'show',
opacity: 'show'
}, 'slow');
});
$(".aa").click(function(event) { }).trigger("click");
});
</script>
<body>
<form id="form1" runat="server">
<div class="acb">
<asp:Repeater ID="ParentRp" runat="server"
onitemdatabound="ParentRp_ItemDataBound" >
<HeaderTemplate>
<table class="wishleftmenu" cellpadding="0" cellspacing="0">
</HeaderTemplate>
<ItemTemplate>
<tr class="aa" >
<td class="title" >
<%# Eval("name")%>
</td>
</tr>
<tr>
<td>
<div >
<asp:HiddenField ID="HiddenField1" runat="server" Value='<%#Eval("id") %>' />
<asp:Repeater ID="ChildRp" runat="server">
<HeaderTemplate>
<table width="100%">
</HeaderTemplate>
<ItemTemplate>
<tr >
<td class="menutd">
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="#"><%# Eval("name")%></asp:HyperLink>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</div>
</td>
</tr>
</ItemTemplate>
<FooterTemplate >
</table>
</FooterTemplate>
</asp:Repeater>
</div>
</form>
</body>
/// <summary>
/// 系统加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Bind();
}
}
/// <summary>
/// 绑定数据源
/// </summary>
void Bind()
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["GetConnection"].ToString());
SqlCommand cmd = new SqlCommand("select * from testMenu where parentID=-1", con);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
con.Open();
DataSet ds = new DataSet();
da.Fill(ds);
con.Close();
ParentRp.DataSource = ds;
ParentRp.DataBind();
}
/// <summary>
/// 绑定子项
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ParentRp_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
HiddenField hd = e.Item.FindControl("HiddenField1") as HiddenField;
int num = Convert.ToInt32(hd.Value.ToString());
SqlConnection sc = new SqlConnection(ConfigurationManager.ConnectionStrings["GetConnection"].ToString());
SqlCommand cm = new SqlCommand("select * from testMenu where parentID=@id", sc);
cm.CommandType = CommandType.Text;
cm.Parameters.Add("@id", SqlDbType.Int).Value = num;
sc.Open();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cm;
DataSet ds = new DataSet();
da.Fill(ds);
sc.Close();
Repeater rpt = e.Item.FindControl("ChildRp") as Repeater;
rpt.DataSource = ds;
rpt.DataBind();
}
}
我这个就是Repeater嵌套的菜单,点击父标题,子标题显示,再点击收回,效果用JQuery实现 --------------------编程问答-------------------- 数据库3个字段
ID NAME PARENTID
父级标题的PARENTID为-1,子菜单的PARENTID为父菜单的ID --------------------编程问答-------------------- zx75991:
谢谢你的JQ代码,就是我想要的效果,很好很强大,谢了 --------------------编程问答-------------------- --------------------编程问答-------------------- 这么详细的回答理应迅速结贴! --------------------编程问答-------------------- 挖坟啊
补充:.NET技术 , ASP.NET