0

マスター ページにスクリプト マネージャーがあるマスター ページとコンテンツ ページを使用しています。コンテンツ ページには、検索クエリの結果と、それらの結果に関連するいくつかの画像が表示されるはずです。応答時間を改善するために、コンテンツ ページの aspx ファイルで定義されている javascript pageLoad() 関数を使用して画像をロードしています。結果は、更新パネル内に配置されたリピーター コントロールを使用して表示されます。リピーター コントロールは、結果の説明を保持する div 要素と、画像を保持する別の div 要素を発行します。最初は、画像 div は空です。コンテンツページのセクションに配置する pageLoad 関数は以下の通りです。

function pageLoad() {
    var anchors = document.getElementsByName("resultAnchor");
    var count = anchors.length;
    var href = "";
    for (var i = 0; i < count; i++) {
        href = anchors[i].href;

        if ((i % 2) == 0) {
            document.getElementById("SearchResultsContent_webRepeater_ImagePanel_" + i).innerHtml = href;
        }
        else {
            document.getElementById("SearchResultsContent_webRepeater_altImagePanel_" + i).innerHtml = href;
        }
    }
}

リピータ制御コードを以下に示します。

<asp:Repeater ID="webRepeater" runat="server" >
            <ItemTemplate>
                <div id="resultControl" class="resultControl" runat="server">
                    <div class="headerImage">
                        <img src='<%# Eval("Favicon") %>' alt="" class="favicon"/>
                    </div>
                    <div class="resultInfo">
                        <a href='<%# Eval("Url") %>' class="resultTitle" name="resultAnchor"><%# Eval("Title") %></a>
                        <br />
                        <span class="resultDescription"><%# Eval("Description") %></span>
                        <br />
                        <span class="resultDisplayLink"><%# Eval("DisplayLink") %></span>
                        <span class="resultFoundOn">Found On:&nbsp;&nbsp;<%# Eval("FoundOn") %></span> 
                        <br />                       
                        <div id="imagePanel"  class="ImagePanel" runat="server" />                            
                    </div>
                    <br />                            
                </div>                    
            </ItemTemplate>

// altImagePanel という名前の画像パネルを持つ ItemTemplate と同じ

SearchResultsContent は、リピーターが配置される asp:Content の ID です。問題は、ImagePanel の innerHtml を設定する pageLoad のステートメントが、SearchResultsContent_webRepeater_ImagePanel_X が見つからないという例外をスローすることです。HTML ソース コードを調べたところ、ImagePanel の ID が SearchResultsContent_webRepeater_ImagePanel_X (X は数字) として表示されます。ただし、マスター ページのない単一の ASPX ページを使用してこれを行うと、この方法は正常に機能します。私が間違っていることや、マスターページとコンテンツページでこれを機能させるために何をする必要があるか、誰にもわかりませんか?

ありがとう、

4

1 に答える 1

1

HTML を検索し、id がページに 1 回だけ表示されることを確認します。これは、iframe または別のフォーム内の変更によるものですか?

于 2011-06-16T16:45:04.533 に答える