C# 4.0 带链接按钮的嵌套中继器控件
我正在尝试创建一个带有嵌套中继器和链接按钮的下拉菜单C# 4.0 带链接按钮的嵌套中继器控件,c#-4.0,drop-down-menu,repeater,asplinkbutton,C# 4.0,Drop Down Menu,Repeater,Asplinkbutton,我正在尝试创建一个带有嵌套中继器和链接按钮的下拉菜单 <asp:Repeater ID="Repeater1" runat="server"> <HeaderTemplate> <ul> </HeaderTemplate> <ItemTemplate> <li>
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li>
<asp:LinkButton ID="LinkButton_Category" runat="server" Text='<%#Eval("cat") %>'
OnCommand="LinkButton_Category_Command" CommandName="Category"
CommandArgument='<%#Eval("catid") %>'></asp:LinkButton>
<asp:Repeater ID="Repeater2" runat="server">
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li>
<asp:LinkButton ID="LinkButton_UseClass" runat="server" Text='<%#Eval("useclass") %>'
OnCommand="LinkButton_UseClass_Command" CommandName="UseClass"
CommandArgument='<%#Eval("UcId") %>'></asp:LinkButton>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
我相信这就是您想要的:
$(document).ready(function () {
$("#nav li").each(function (index) {
var sibling = $(this).find("a").next();
sibling.hide();
});
$("#nav li").click(function () {
$("#nav li").each(function (index) {
var sibling = $(this).find("a").next();
sibling.hide();
});
var sibling = $(this).find("a").next();
sibling.show();
});
});
编辑
以下是中继器的输出:
<body>
<form id="form1" runat="server">
<div id="nav">
<ul>
<li><a href="#">Alpha</a>
<ul>
<li><a href="#">A</a></li>
<li><a href="#">B</a></li>
<li><a href="#">C</a></li>
<li><a href="#">D</a></li>
</ul>
</li>
<li><a href="#">Numeric</a>
<ul>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
</ul>
</li>
</ul>
</div>
</form>
</body>
-
-
不确定问题是什么。你是在问如何添加下拉列表吗?我正在寻找使用链接按钮和转发器的下拉菜单。我可以填充链接按钮,但单击时它们不会保持打开状态。您可以将幻灯片菜单的代码添加到您的问题中吗?另外,如果您可以添加页面的屏幕截图,它可以帮助我们准确地了解您想要实现的目标。@ShaiCohen:我试图使用jquery实现向下滑动菜单。下面是我使用的代码:$(document).ready(函数(){$(“#nav li”).click(函数(){var sibling=$(this).find(“a”).next();sibling.show();},函数(){var sibling=$(this).find(“a”).next();sibling.hide();});我不知道如何添加屏幕截图。我是新来的。我在你的问题中添加了JQuery代码。在屏幕截图上没有问题。你可以这样做:一旦你把截图保存到你的电脑上,点击你问题下面的“编辑”链接。然后将光标放在要添加屏幕截图的位置。按“Ctrl+G”,将出现一个diaglog框,允许您选择要上载的文件。你也可以参考meta上的这个问题了解更多信息:如果我给外部ul提供id=“nav”,子列表将不会保持打开状态。一旦我点击它们,它们就会关闭。如果我将id=“nav”给内部ul,内部列表和外部列表会同时打开。(与原始问题相同)。怎么办?尝试用id=“nav”奇怪的div包装中继器。我有工作中的示例代码。我大约一个小时后到,然后再打给你。
<body>
<form id="form1" runat="server">
<div id="nav">
<ul>
<li><a href="#">Alpha</a>
<ul>
<li><a href="#">A</a></li>
<li><a href="#">B</a></li>
<li><a href="#">C</a></li>
<li><a href="#">D</a></li>
</ul>
</li>
<li><a href="#">Numeric</a>
<ul>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
</ul>
</li>
</ul>
</div>
</form>
</body>