我有一个转发器,它直接从与我的Outlook绑定的应用列出电子邮件。我需要中继器列出文件夹名称,然后列出该文件夹中的每条消息。然而,我得到的是该文件夹中的每条消息重复的文件夹名称。使用jquery的asp.net转发器
我也试图使用jquery切换文件夹名称以显示它下面的消息,但是当我使用style="display:none;"
时,不显示任何消息。我不认为我试图使用的jquery是正确的。它被称为jsfiddle。
任何帮助将不胜感激,因为我画空白。我一直盯着这个太久,可能只是需要休息一下。
这里是我的代码:
<script type="text/javascript">
$(function() {
$('a.toggler').on('click', function() {
$('+ div', this).toggle();
});
});
</script>
<asp:Repeater runat="server" ID="ListServRepeater">
<ItemTemplate>
<div class="dataContentSection">
<a href="javascript:void(0);" class="folders toggler">
<h4>
<%# Eval("FolderName") %>
</h4>
</a>
</div>
<div class="dataContentSection">
<div>
<%# Eval("Message") %>
</div>
</div>
</ItemTemplate>
</asp:Repeater>
编辑:我嵌套的中继器,但我不能做正确的事情,因为所有的FolderNames仍会在每次消息显示。
<div runat="server">
<ul>
<asp:Repeater runat="server" ID="FolderRepeater">
<ItemTemplate>
<li class="dataContentSection">
<a href="javascript:void(0);" class="folders toggler">
<h4>
<%# Eval("FolderName") %>
</h4>
</a>
</li>
<asp:Repeater runat="server" ID="MessagesRepeater">
<ItemTemplate>
<li class="dataContentSection" >
<div id="messages">
<%# Eval("Message") %>
</div>
</li>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
</ul>
</div>
更新:我能得到的中继器的工作得益于@rs提供的文章,以帮助。如果你看看评论,文章应该仍然存在。我几乎一字不差地接受了它,取而代之的是列名和其他与我的代码相关的内容。仍然看着jQuery,不知道为什么它不会工作。我能想到的唯一的事情就是它是动态的,而不是静态的,我试图展示和隐藏的数据。
<div class="dataContentSection">
<a href="javascript:void(0);" class="folders toggler">
<h4>
Folder Name
</h4>
</a>
</div>
<ul>
<div class="dataContentSection">
<div id="message">
Message Text
</div>
</div>
</ul>
</div>
如果你想并不是每个消息重复文件夹,使用儿童中继器控制每个文件夹下的消息。 – 2013-02-20 22:44:55
我将编辑添加到原始代码@rs。 – jlg 2013-02-21 14:14:07
您需要两个不同的数据源,一个用于文件夹,一个用于文件。然后,您应该添加两个来源之间的关系,并将文件夹源重新绑定到重复的主文件并将文件绑定。你可以去这个[微软文章](http://support.microsoft.com/kb/306154) – 2013-02-21 15:51:27