Вырвал мой слух этим. Дай мне посмотреть, смогу ли я объяснить:
У меня есть страница результатов SharePoint, на которой у меня есть Core WebPart результатов поиска. Теперь я хочу изменить параметр в строке запроса, когда я отправляю страницу назад, чтобы WebPart возвращал разные результаты для каждого параметра, например, строка запроса будет интерактивной map.aspx? k = Страна: Румыния, это отфильтрует результаты для Румынии.
Первый вопрос: я хочу сделать это с помощью JavaScript, поэтому я звоню:
document.getElementById('aspnetForm').action = "interactivemap.aspx?k=Country:" + country;
Здесь нет ничего особенного, но причина, по которой мне нужно звонить из Javascript, заключается в том, что на этой странице также есть флэш-апплет, из которого происходят вызовы Javascript. Когда выполняются вызовы javascript, странице необходимо выполнить PostBack, но не перезагружать флэш-апплет.
Для этого я обратился к ASP.Net AJAX, чтобы обернуть веб-часть результатов поиска в панель обновлений. Теперь, если я использую кнопку в UpdatePanel для обратной передачи, UpdatePanel ведет себя как положено и выполняет частичную визуализацию веб-части результатов поиска, не перезагружая флэш-апплет.
Проблема возникает потому, что мне нужно отправить обратно страницу из JavaScript. Я вызвал __doPostBack (), поскольку я успешно использовал это в прошлом. Он работает сам по себе, но не работает, когда я впервые вызываю вышеупомянутый Javascript перед __doPostBack () (я также пытался вызвать click () для скрытой кнопки), код для страницы находится внизу.
Я думаю, что проблема заключается в том, что скрипт-менеджер не допускает частичного рендеринга при изменении действия после публикации формы.
Мои вопросы.
A) Есть ли другой способ изменить параметр веб-части результатов поиска без использования строки запроса.
или
B) Есть ли способ изменить строку запроса при выполнении обратной передачи AJAX и получении частичного рендеринга.
<asp:content contentplaceholderid="PlaceHolderFullContent" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true" />
<SPSWC:pagelevelerror runat="server" id="PageLevelError"/>
<script type="text/javascript">
function update(country) {
//__doPostBack('ContentUpdatePanel', '');
//document.getElementById('aspnetForm').action = "interactivemap.aspx?k=ArticleCountry:" + country;
document.getElementById('ctl00_PlaceHolderFullContent_UpdateButton').click();
}
</script>
<div id="flashFeature">
<object type="application/x-shockwave-flash" data="_layouts/HFT/flashApplets/interactiveMap/interactiveMap/interactiveMapAssets/IMap.swf" width="100%" height="500px" id="flashContent" style="visibility: visible;">
<param name="bgcolor" value="#cccccc"><param name="allowfullscreen" value="true">
<param name="allowscriptaccess" value="always">
<param name="flashvars" value="ASSETS_FOLDER=_layouts/HFT/flashApplets/interactiveMap/interactiveMap/interactiveMapAssets/">
<param name="movie" value="_layouts/HFT/flashApplets/interactiveMap/interactiveMap/interactiveMapAssets/IMap.swf">
<embed src="_layouts/HFT/flashApplets/interactiveMap/interactiveMap/interactiveMapAssets/IMap.swf" width="100%" height="500px"></embed></object>
</div>
<div onclick="update('Romania');">Romania</div>
<div class="firstDataTitle">
<div class="datatabletitleOuterWrapper">
<div class="datatabletitle">
<span>Content</span></div>
</div>
<div class="datatableWrapper">
<div class="dataHolderWrapper">
<div class="datatable">
<div>
<div class="searchMain">
<div class="searchZoneMain">
<asp:UpdatePanel runat="server" id="ContentUpdatePanel" UpdateMode="Conditional">
<ContentTemplate>
<WebPartPages:webpartzone runat="server" AllowPersonalization="false" title=" <%$Resources:sps,LayoutPageZone_BottomZone%>" id="BottomZone" orientation="Vertical" QuickAdd-GroupNames="Search" QuickAdd-ShowListsAndLibraries="false"><ZoneTemplate> </ZoneTemplate></WebPartPages:webpartzone>
<asp:Button id="UpdateButton" name="UpdateButton" runat="server" Text="Update"/>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</asp:content>