데이터를 가져 와서로드하는 데 시간이 많이 걸리는 정말 큰 페이지가 있습니다. 처음 .aspx 페이지를 탐색 할 때 멋진 로딩 .png 이미지를 표시하여 사람들이 표시하기 전에 창을 닫지 않도록하고 싶습니다. 나는 ASP를 퍼팅 시도했다 : UpdateProgress하지만 이것은 페이지가로드 될 때까지 나타나지 않고 페이지에서 뭔가를한다. 나머지 페이지가로드되기 전에 먼저 로딩 화면을 어떻게 가져 옵니까? 아래는 내가 시도한 것입니다.페이지로드 페이지로드 asp : UpdateProgress
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdateProgress ID="UpdateProgress1" runat="server" DisplayAfter="10">
<ProgressTemplate>
<div id="updatestatus" class="shadow">
<asp:Label ID="Label12" runat="server" Text="Loading...">
</asp:Label>
<asp:Image ID="Image1"
runat="server" ImageUrl="~/images/1status.png" />
</div>
</ProgressTemplate>
</asp:UpdateProgress>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<%-- My page loading stuff -->
</ContentTemplate>
</asp:UpdatePanel>
나는 또한 타이머를 사용해 보았습니다. 여기 흥미 로워집니다. ContentTemplate 내의 레이블은 틱에 잘 표시됩니다. GridView는 내용 템플릿 안에 배치하지 않습니다.
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:Image ID="Image1" runat="server" ImageUrl="~/images/1status.png" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server" Visible="false">
<ContentTemplate>
<!-- My page loading stuff -->
</ContentTemplate>
</asp:UpdatePanel>
<asp:Timer ID="Timer1" runat="server" Interval="600" OnTick="Timer1_Tick"></asp:Timer>
protected void Timer1_Tick(object sender, EventArgs e)
{
UpdatePanel1.Visible = true;
Timer1.Enabled = false;
Image1.Visible = false;
}
나는 updatepanel을 완전히 꺼내 봤지만 타이머의 gridview 표시 상태를 변경해도 여전히 작동하지 않습니다. gridview는 결코 나타나지 않습니다. 흥미로운 무엇
내가 다음을 수행하는 페이지
protected void ButtonHide_Click(object sender, EventArgs e)
{
if (GridView1.Visible)
{
GridView1.Visible = false;
}
else
{
GridView1.Visible = true;
}
}
의 버튼을 놓으면 내가 그것을 클릭하고 숨기고 나는 문제없이 원하는대로의 GridView를 여러 번 보여줄 수 있다는 것입니다. 타이머가 다른 이유는 무엇입니까?