Функция Javascript pageLoad не работает с главной страницей и страницей содержимого - PullRequest
0 голосов
/ 16 июня 2011

Я использую главную страницу и страницу содержания с менеджером сценариев на главной странице.На странице содержимого должны отображаться результаты поискового запроса и некоторые изображения, связанные с этими результатами.Чтобы улучшить время отклика, я загружаю изображения с помощью функции javascript pageLoad (), определенной в файле aspx страницы содержимого.Результаты отображаются с использованием элемента управления повторителя, размещенного на панели обновления.Элемент управления повторителем излучает элемент 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>

// То же, что и ItemTemplate с панелью изображенийименуется как altImagePanel

SearchResultsContent - это идентификатор asp: Content, в котором находится повторитель.Проблема в том, что оператор в pageLoad, который устанавливает innerHtml ImagePanel, выдает исключение, сообщая, что SearchResultsContent_webRepeater_ImagePanel_X не найден.Я просмотрел исходный код HTML, и он показывает идентификатор ImagePanel как SearchResultsContent_webRepeater_ImagePanel_X, где X - это число.Тем не менее, этот метод работает нормально, если я делаю это, используя одну страницу ASPX без главной страницы.Кто-нибудь имеет представление о том, что я делаю неправильно или что мне нужно сделать, чтобы эта работа работала со страницей мастера и контента?

Спасибо,

1 Ответ

1 голос
/ 16 июня 2011

Поиск в html и убедитесь, что идентификатор появляется только один раз на вашей странице.Это из-за каких-либо изменений внутри iframe или отдельной формы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...