2

Outlookに関連付けられたアプリから直接メールを一覧表示するリピーターがあります。リピーターがフォルダー名をリストし、次にそのフォルダー内の各メッセージをリストする必要があります。ただし、私が取得するのは、そのフォルダー内のすべてのメッセージに対してフォルダー名が繰り返されることです。

また、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>

編集:リピーターをネストしましたが、すべてのFolderNameがすべてのメッセージに表示されるため、正しいことをしてはいけません。

<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>
4

1 に答える 1

3

この質問は2つの部分からなる質問です。rsは、各フォルダーの下にあるメッセージの子リピーター制御に関して正しいです。その問題が.Netを介して解決されたら、各フォルダーを表示/非表示にするjquery部分に対処できます。

jquery部分は、複数の異なる方法でアドレス指定できます。jquery部分に対処する準備ができたら、参照できるコード例を次に示します。

<script type="text/javascript">
    $(function () {
        $('a').click(function() {
            $(this).parent().children('.dataContentSectionMessages').toggle();
        });
    });
</script>

<div class="dataContentSection">
    <a href="javascript:void(0);" class="folders toggler">
        <h4>
            Folder 1
        </h4>
    </a>
    <div class="dataContentSectionMessages">
        <div id="message1a">
            Message 1a
        </div>
        <div id="message1b">
            Message 1b
        </div>
    </div>
</div>
<div class="dataContentSection">
    <a href="javascript:void(0);" class="folders toggler">
        <h4>
            Folder 2
        </h4>
    </a>
    <div class="dataContentSectionMessages">
        <div id="message2a">
            Message 2a
        </div>
    </div>
</div>

上記のデモを行うjsfiddleは次のとおりです。http://jsfiddle.net/4PPdz/

于 2013-02-20T23:02:47.870 に答える