Я собираюсь показать Div с загружаемым изображением во время обратного просмотра страницы, чтобы сообщить пользователю о операции запуска. Я использую простую функцию javascript, которая показывает div, когда я вызываю этот JavaScript из кнопки ввода html (без обратной передачи), div появляется нормально. Но когда я использую его с помощью кнопки post-back (путем установки его свойства OnClientClick), появляется div, но без разгрузки изображения (отображается как окно с выгруженным изображением). Я не могу понять, где проблема, я даже попытался добавить изображение в виде скрытого элемента управления html, чтобы он был предварительно загружен до обратной связи, но не превалировал. Вот мой ASPX код:Изображение не появляется, когда отображается Div с загружаемым изображением во время Postbacks. ASP.net
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" language="javascript">
function PleaseWait(message) {
message = message ? message : PleaseWaitDefaultMessage;
var dsoctop = document.all ? window.document.body.scrollTop : window.pageYOffset;
var el = document.getElementById("PleaseWaitDiv");
el.style.top = (dsoctop + 100) + "px";
el.style.left = "0px";
el.innerHTML = "<div style='background-color:white;border: solid 0px black; width:100%;'><img src='" + WebSiteBaseURL + "Images/bigrotation2.gif' /><h3>" + message + "</h3></div>";
el.style.display = "";
}
</script>
<asp:Literal ID="InitLiteral" runat="server" EnableViewState="false"><script>var PleaseWaitDefaultMessage = "{0}"; var WebSiteBaseURL = "{1}"; </script>
</asp:Literal>
</head>
<body>
<form id="form1" runat="server">
<div>
<div id="PleaseWaitDiv" style="width: 100%; position: absolute; top: 0px; display: none;
text-align: center; z-index: 2; max-width: 1024px; min-width: 600px; height: 260px;
overflow: hidden; background: #fff; margin: 0 auto; left: 0; right: 0;">
</div>
<asp:Button ID="btnTestPleaseWait" runat="server" OnClientClick="PleaseWait();"
Text="Test Please wait with postback" onclick="btnTestPleaseWait_Click"
/>
<input type="button" onclick="PleaseWait();" value="Test Please wait no postback" />
</div>
</form>
</body>
</html>
и вот мой код позади:
protected void Page_Load(object sender, EventArgs e)
{
InitLiteral.Text = string.Format(InitLiteral.Text, "Please Wait.....", Page.ResolveClientUrl("~/"));
}
protected void btnTestPleaseWait_Click(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(5000);
}
Я думаю, что вы не pasing сообщение функции 'onclick =" PleaseWait (Процесс продолжается); " – Dotnet
@Dotnet, спасибо, но если бы я не передал сообщение функции, оно примет сообщение по умолчанию : message = message? message: PleaseWaitDefaultMessage; –
Я скопировал ваш код точно, за исключением того, что я закодировал URL-адрес изображения. Оно работает. Запустите Fiddler или какую-нибудь сетевую трассировку, я думаю, вы можете получить изображение 404. Что делать, если вы вставляете код Page_Load внутри if (! IsPostback)? – Crowcoder