성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] The Windows Registry Adventure #1: ...
[정성태] systemd for Developers I ; https:/...
[정성태] 엄밀히 object 타입의 인스턴스가 다른 타입으로 형변환 가능...
[정성태] 아래의 글에서 나오는 "Windows Application Pa...
[정성태] The history of calling conventions,...
[정성태] Secure and Deploy .NET Windows Form...
[정성태] Get Started with Milvus Vector DB i...
[정성태] cyberark/PipeViewer - A tool that...
[정성태] WinForms in a 64-Bit world – our st...
[정성태] 예제에서 SELECT_SQL도 내부적으로는 SqlCommand/...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
닷넷
.NET 3.0
.NET 3.5
.NET 4.0
COM 개체 관련
Win32
Vista
Windows 7
Windows 8
Windows 서버
데이터베이스
웹폼 코딩 규약
윈폼 코딩 규약
공통 코딩 규약
명령행
레지스트리
기타
부모글 보이기/감추기
내용
Tip/Trick: Enabling Back/Forward-Button Support for ASP.NET AJAX UpdatePanel<br /> ; <a target="_blank" href="http://weblogs.asp.net/scottgu/archive/2006/09/14/Tip_2F00_Trick_3A00_-Enabling-Back_2F00_Forward_2D00_Button-Support-for-ASP.NET-AJAX-UpdatePanel.aspx">http://weblogs.asp.net/scottgu/archive/2006/09/14/Tip_2F00_Trick_3A00_-Enabling-Back_2F00_Forward_2D00_Button-Support-for-ASP.NET-AJAX-UpdatePanel.aspx</a><br /> <br /> <hr /> <font face="arial" size="2"> <p>Nikhil <a href="http://www.nikhilk.net/BackButtonSupport.aspx">recently posted</a> a nice blog post that includes a new ASP.NET AJAX-enabled control called "HistoryControl". When added to a page it allows developers to programmatically add logical views into a browser's history list. This enables you to make AJAX enabled sites much more useful, and to follow the standard back/forward navigation paradigm that traditional web apps follow.</p> <p>For example, the below code could be written by a developer in response to a selection change within a list to to add the previous list selection to the browser's history via Nikhil's "HistoryControl":</p> <div style="border-right: white 2px ridge; padding-right: 10px; border-top: white 2px ridge; padding-left: 10px; font-size: 10pt; padding-bottom: 10px; margin: 10px; border-left: white 2px ridge; padding-top: 10px; border-bottom: white 2px ridge; font-family: courier new; background-color: #eeeeee; word-wrap: break-word"><font color="blue">private void </font><font color="black">ContentList_SelectedIndexChanged(</font><font color="blue">object </font><font color="black">sender, EventArgs e) {<br> history.AddEntry(contentList.SelectedIndex.ToString()</font><font color="blue">;<br></font><font color="black">}</font> </div> <p></p> <p>Once you add entries into the history control, the back/forward button will be enabled in the browser. Nikhil's history control then exposes a "Navigate" event which fires when you press the forward or back button in the browser, and this event then exposes the identifier entry provided before when the view was added into the browser history. You can then use this to restore the page to whatever state it should be in to match the previous history item and update the page:</p> <p> <div style="border-right: white 2px ridge; padding-right: 10px; border-top: white 2px ridge; padding-left: 10px; font-size: 10pt; padding-bottom: 10px; margin: 10px; border-left: white 2px ridge; padding-top: 10px; border-bottom: white 2px ridge; font-family: courier new; background-color: #eeeeee; word-wrap: break-word"><font color="blue">private void </font><font color="black">HistoryControl_Navigate(</font><font color="blue">object </font><font color="black">sender, HistoryEventArgs e) {<br><br> </font><font color="blue">int </font><font color="black">selectedIndex </font><font color="blue">= </font><font color="maroon">0</font><font color="blue">;<br><br> if </font><font color="black">(String.IsNullOrEmpty(e.Identifier) </font><font color="blue">== false</font><font color="black">) {<br> selectedIndex </font><font color="blue">= </font><font color="black">Int32.Parse(e.Identifier)</font><font color="blue">;<br> </font><font color="black">}<br><br> </font><font color="darkgreen">// Update the content being displayed in the page<br> </font><font color="black">contentList.SelectedIndex </font><font color="blue">= </font><font color="black">selectedIndex</font><font color="blue">;<br><br> </font><font color="darkgreen">// Mark the update panels as needing an update<br> </font><font color="black">mainUpdatePanel.Update()</font><font color="blue">;<br></font><font color="black">}</font> </div> <p></p> <p>And now your end-users get forward/back button history navigation working with AJAX. You can <a href="http://www.nikhilk.net/BackButtonSupport.aspx" target="_blank">download the code for Nikhil's history control and start using it here</a>.</p> <p>Hope this helps,</p> <p>Scott</p></font> <div class = "shareblock"><strong>Share this post:</strong> <a title="Email Tip%2fTrick%3a+Enabling+Back%2fForward-Button+Support+for+ASP.NET+AJAX+UpdatePanel" href = "mailto:?body=Thought you might like this: /scottgu/archive/2006/09/14/Tip_2F00_Trick_3A00_-Enabling-Back_2F00_Forward_2D00_Button-Support-for-ASP.NET-AJAX-UpdatePanel.aspx&subject=Tip%2fTrick%3a+Enabling+Back%2fForward-Button+Support+for+ASP.NET+AJAX+UpdatePanel">Email it!</a> | <a href = "http://del.icio.us/post?url=/scottgu/archive/2006/09/14/Tip_2F00_Trick_3A00_-Enabling-Back_2F00_Forward_2D00_Button-Support-for-ASP.NET-AJAX-UpdatePanel.aspx&title=Tip%2fTrick%3a+Enabling+Back%2fForward-Button+Support+for+ASP.NET+AJAX+UpdatePanel" title="Submit Tip%2fTrick%3a+Enabling+Back%2fForward-Button+Support+for+ASP.NET+AJAX+UpdatePanel to del.icio.us" >bookmark it!</a> | <a href = "http://www.digg.com/submit?url=/scottgu/archive/2006/09/14/Tip_2F00_Trick_3A00_-Enabling-Back_2F00_Forward_2D00_Button-Support-for-ASP.NET-AJAX-UpdatePanel.aspx&phase=2" title="Submit Tip%2fTrick%3a+Enabling+Back%2fForward-Button+Support+for+ASP.NET+AJAX+UpdatePanel to digg.com">digg it!</a> | <a href = "http://reddit.com/submit?url=/scottgu/archive/2006/09/14/Tip_2F00_Trick_3A00_-Enabling-Back_2F00_Forward_2D00_Button-Support-for-ASP.NET-AJAX-UpdatePanel.aspx&title=Tip%2fTrick%3a+Enabling+Back%2fForward-Button+Support+for+ASP.NET+AJAX+UpdatePanel" title="Submit Tip%2fTrick%3a+Enabling+Back%2fForward-Button+Support+for+ASP.NET+AJAX+UpdatePanel to reddit.com">reddit!</a></div>
첨부파일
스팸 방지용 인증 번호
1896
(왼쪽의 숫자를 입력해야 합니다.)