3
我有以下問題:填充圖像回傳問題
在按鈕點擊我要填充的圖像源,並顯示一個ModalPopupExtender內的圖像。 爲了打開ModalPopupExtender我呼籲__doPostBack
導致UpdatePanel執行回發並顯示適當的視圖與其中的圖像。
<script src="jquery-1.5.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
window.pageLoad = function() {
$addHandler($get('btn1'), 'click', function (e) {
__doPostBack('pbcTest', '');
// setTimeout("PopulateImage()", 100);
PopulateImage();
$find('<%=mpePopup.ClientID%>').show();
e.preventDefault();
});
}
function PopulateImage() {
$(".testImage").attr("src", "6.jpg");
}
</script>
<ajaxtoolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" CombineScripts="false">
</ajaxtoolkit:ToolkitScriptManager>
<button id="btn1"> Click</button>
<asp:LinkButton ID="lbTest" runat="server" Text="show popup" Style="display: none;" />
<ajaxtoolkit:ModalPopupExtender runat="server" ID="mpePopup" TargetControlID="lbTest"
PopupControlID="pnlPopup" BackgroundCssClass="modalBackground" CancelControlID="lbClose" />
<asp:Panel runat="server" ID="pnlPopup" CssClass="modalPopup">
<asp:LinkButton runat="server" ID="lbClose">Close</asp:LinkButton>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:MultiView runat="server" ID="mvPopup">
<asp:View ID="View1" runat="server">
<img class="testImage" />
</asp:View>
</asp:MultiView>
<cs:PostBackControl runat="server" ID="pbcTest" OnCallBack="pbcTest_CallBack" />
</ContentTemplate>
</asp:UpdatePanel>
</asp:Panel>
protected void pbcTest_CallBack(object sender, CallBackEventArgs e)
{
mvPopup.ActiveViewIndex = 0;
}
如果__doPostBack
後,我馬上打電話PopulateImage()
,圖像是空的(儘管PopulateImage()
被稱爲與圖像出現了一段時間,但消失後,有可能在螢火蟲看看)。
但如果我把超時setTimeout("PopulateImage()", 100);
圖像顯示出來。
這種行爲的原因是什麼?
謝謝你,我認爲你是對的。其實我已經添加了Sys.WebForms.PageRequestManager.getInstance()。add_endRequest(EndRequestHandler);它工作正常。 – Elistan 2011-05-09 19:22:30