인터넷 검색을 통해 과거의 질문을 검색하고 검색하는 데 시간을 낭비했지만 그 답변을 어디서나 얻을 수는 없었습니다. 마스터 페이지가 없어서 나에게 적합하지 않습니다.)페이지로드 중 페이지를로드하는 중 마스터 페이지를 사용하여 메시지로드 asp.net
내 질문에 많은 데이터가 Page_Load 메서드의 데이터베이스에서 요청되므로로드하는 데 시간이 걸릴 수있는 asp.net 페이지가 두 개 있습니다. 사용자가 페이지가 손상되었다고 생각하지 않게하고 페이지를 새로 고치거나 다른 작업을 수행하려면로드하는 동안 페이지에서 (메뉴를 제외하고) 다른 모든 것을 숨기는로드 메시지를 넣고 싶습니다.
마스터 페이지와 함께 C#으로 ASP.Net 4.0을 사용하고 있습니다.
내가 가장 성공한 곳은 컨텐츠 마스터가 contentplaceholder를 다루는 마스터 페이지에서 UpdatePanel을 사용하는 것입니다. 그러나 이것이 가장 좋은 방법은 아닙니다. 어쨌든 한 번만 나타납니다. 즉 사용자가 로그인하면로드 메시지가 나타나고 모든 데이터가 홈 페이지 (dashboard.aspx)에로드되면로드 메시지가 사라집니다. 이는 내가 원하는 것입니다. 그러나 사용자가 해당 페이지에서 벗어난 다음 집에서 클릭하면 다시로드 메시지가 나타나지 않고로드하는 데 시간이 걸립니다. 또한 눈에 띄는 시간이 걸리는 다른 페이지에는 표시되지 않습니다. 다음은
은 dashboard.aspx의 페이지 (긴 로딩 시간이있는 페이지)<asp:Panel ID="PanelWelcome" runat="server">
<h1>
Welcome
<asp:Label ID="LabelUserName" runat="server" Text="[User Name]" /> to your
personal Dashboard.</h1>
<table width="100%" cellpadding="5px">
<tr>
<td style="width: 70%" valign="top">
<asp:Panel ID="Panel2" runat="server">
<p>
</p>
<h4>
Up and Coming </h4>
<br />
<asp:GridView ID="GridViewItin" runat="server" Width="100%" HorizontalAlign="Left"
OnRowDataBound="GridViewItin_RowDataBound">
</asp:GridView>
</asp:Panel>
</td>
<td style="width: 30%">
<asp:Panel ID="PanelProfile" runat="server">
<asp:ImageButton ID="ImageButtonProfile" runat="server" ImageUrl="~/Images/BlankProfile.jpg"
Width="150px" /><br />
<h4>
Name:</h4>
<asp:Label ID="LabelPARname" runat="server" Text="[Person Name]"></asp:Label>
<h4>
Company:</h4>
<asp:Label ID="LabelBARname" runat="server" Text="[Company Name]"></asp:Label>
<h4>
Date of Birth:</h4>
<asp:Label ID="LabelPARdob" runat="server" Text="[DOB]"></asp:Label><br />
<asp:LinkButton ID="LinkButtonProfilePage" runat="server" OnClick="LinkButtonProfilePage_Click">More details...</asp:LinkButton>
</asp:Panel>
</td>
</tr>
</table>
</asp:Panel>
master.aspx 아래
<body>
<form runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div class="page">
<div class="header">
<div class="title">
<h1>
Header
</h1>
</div>
<div class="loginDisplay">
<asp:LoginView ID="HeadLoginView" runat="server" EnableViewState="false">
<AnonymousTemplate>
[ <a href="~/Account/Login.aspx" id="HeadLoginStatus" runat="server">Log In</a>
]
</AnonymousTemplate>
<LoggedInTemplate>
Welcome <span class="bold">
<asp:LoginName ID="HeadLoginName" runat="server" />
</span>! [
<asp:LoginStatus ID="HeadLoginStatus" runat="server" LogoutAction="Redirect" LogoutText="Log Out"
LogoutPageUrl="~/Default.aspx" />
]
</LoggedInTemplate>
</asp:LoginView>
</div>
<div class="clear hideSkiplink">
<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false"
IncludeStyleBlock="false" Orientation="Horizontal" OnMenuItemClick="NavigationMenu_MenuItemClick">
<Items>
<asp:MenuItem Text="Home" />
<asp:MenuItem Text="About" />
</Items>
</asp:Menu>
</div>
</div>
<div class="main">
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:ContentPlaceHolder ID="MainContent" runat="server" />
<asp:UpdateProgress ID="UpdateProgress1" runat="server">
<ProgressTemplate>
<asp:Panel ID="Panel1" runat="server" HorizontalAlign="Center">
<asp:Image ID="Image1" runat="server" ImageUrl="~/Images/loader.gif" />
</asp:Panel>
</ProgressTemplate>
</asp:UpdateProgress>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanelAnimationExtender ID="UpdatePanel1_UpdatePanelAnimationExtender"
runat="server" Enabled="True" TargetControlID="UpdatePanel1">
</asp:UpdatePanelAnimationExtender>
</div>
<div class="clear">
</div>
</div>
<div class="footer">
</div>
</form>
와의 본문입니다
나에게 가장 좋은 방법을 알려주고 내가 잘못 가고있는 곳을 보여 주실 수 있습니까? 또한 UpdateProgress 템플릿이 훌륭하게 표시 될 때 ContentTemplate을 숨길 수있는 방법은 무엇입니까?
감사합니다.
빠른 답장을 보내 주셔서 감사합니다. Example.aspx와 같은로드 페이지를 사용하면 사용자가 뒤로 버튼을 클릭 할 때 영향을 미치지 않을 수 있습니까? 내 마스터 페이지에는 UpdateProgress와 스크립트 관리자가 있습니다. –