NewsHeadLineExampleCS.aspx 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. <%@ Page Language="C#" %>
  2. <%@ Import Namespace="System.Collections.Generic" %>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  4. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  5. <script runat="server">
  6. protected void NewsClick_Handler(object sender, EventArgs e)
  7. {
  8. System.Threading.Thread.Sleep(6000);
  9. HeadlineList.DataSource = GetHeadlines();
  10. HeadlineList.DataBind();
  11. }
  12. protected void Page_Load(object sender, EventArgs e)
  13. {
  14. if (!IsPostBack)
  15. {
  16. HeadlineList.DataSource = GetHeadlines();
  17. HeadlineList.DataBind();
  18. }
  19. }
  20. // Helper methods to simulate news headline fetch.
  21. private SortedList GetHeadlines()
  22. {
  23. SortedList allheadlines = new SortedList();
  24. allheadlines.Add(1, "Lorem ipsum dolor sit amet, consectetuer adipiscing elit.");
  25. allheadlines.Add(2, "Nam consectetuer metus ut arcu.");
  26. allheadlines.Add(3, "Integer sodales tempor orci.");
  27. allheadlines.Add(4, "Donec posuere laoreet leo.");
  28. allheadlines.Add(5, "In sollicitudin turpis ut eros.");
  29. allheadlines.Add(6, "Proin a magna quis dolor lacinia sagittis.");
  30. allheadlines.Add(7, "Maecenas tristique velit quis libero.");
  31. allheadlines.Add(8, "Integer facilisis faucibus mi.");
  32. List<int> list = GetRandomList(5, 8);
  33. SortedList selectedHeadlines = new SortedList();
  34. foreach (int i in list)
  35. {
  36. selectedHeadlines.Add(i, allheadlines[i]);
  37. }
  38. return selectedHeadlines;
  39. }
  40. private List<int> GetRandomList(int n, int max)
  41. {
  42. List<int> list = new List<int>();
  43. Random r = new Random();
  44. for (int i = 0; i < n; i++)
  45. {
  46. int curr = r.Next(1, max);
  47. while (list.Contains(curr))
  48. {
  49. curr = r.Next(1, max);
  50. }
  51. list.Add(curr);
  52. }
  53. return list;
  54. }
  55. </script>
  56. <html xmlns="http://www.w3.org/1999/xhtml">
  57. <head runat="server">
  58. <title>PageRequestManager initializeRequest Example</title>
  59. <style type="text/css">
  60. body {
  61. font-family: Tahoma;
  62. }
  63. a {
  64. text-decoration: none;
  65. }
  66. a:hover {
  67. text-decoration: underline;
  68. }
  69. div.NewsPanelStyle{
  70. width: 300px;
  71. height: 300px;
  72. }
  73. div.AlertStyle {
  74. font-size: smaller;
  75. background-color: #FFC080;
  76. height: 20px;
  77. width: 300px;
  78. visibility: hidden;
  79. }
  80. div.NewsContainer {
  81. display: inline;
  82. float: left;
  83. width: 330px;
  84. height: 300px;
  85. }
  86. </style>
  87. </head>
  88. <body>
  89. <form id="form1" runat="server">
  90. <div>
  91. <asp:ScriptManager ID="ScriptManager1" runat="server" />
  92. <script type="text/javascript" language="javascript">
  93. var divElem = 'AlertDiv';
  94. var messageElem = 'AlertMessage';
  95. Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(CheckStatus);
  96. function CheckStatus(sender, args)
  97. {
  98. var prm = Sys.WebForms.PageRequestManager.getInstance();
  99. if (prm.get_isInAsyncPostBack() & args.get_postBackElement().id == 'CancelRefresh') {
  100. prm.abortPostBack();
  101. }
  102. else if (prm.get_isInAsyncPostBack() & args.get_postBackElement().id == 'RefreshButton') {
  103. args.set_cancel(true);
  104. ActivateAlertDiv('visible', 'Still working on previous request.');
  105. }
  106. else if (!prm.get_isInAsyncPostBack() & args.get_postBackElement().id == 'RefreshButton') {
  107. ActivateAlertDiv('visible', 'Retrieving headlines.');
  108. }
  109. }
  110. function ActivateAlertDiv(visString, msg)
  111. {
  112. var adiv = $get(divElem);
  113. var aspan = $get(messageElem);
  114. adiv.style.visibility = visString;
  115. aspan.innerHTML = msg;
  116. }
  117. </script>
  118. <div class="NewsContainer" >
  119. <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="Server" >
  120. <ContentTemplate>
  121. <asp:Panel ID="Panel1" runat="server" GroupingText="News Headlines" CssClass="NewsPanelStyle">
  122. <br />
  123. <asp:DataList ID="HeadlineList" runat="server">
  124. <ItemTemplate>
  125. <a href="#"><%# Eval("Value") %></a>
  126. </ItemTemplate>
  127. <FooterTemplate>
  128. </FooterTemplate>
  129. <FooterStyle HorizontalAlign="right" />
  130. </asp:DataList>
  131. <p style="text-align:right">
  132. <asp:Button runat="server" ID="RefreshButton" Text="Refresh"
  133. OnClick="NewsClick_Handler" />
  134. </p>
  135. <div id="AlertDiv" class="AlertStyle">
  136. <span id="AlertMessage"></span> &nbsp;&nbsp;&nbsp;&nbsp;
  137. <asp:LinkButton ID="CancelRefresh" runat="server">cancel</asp:LinkButton>
  138. </div>
  139. </asp:Panel>
  140. </ContentTemplate>
  141. </asp:UpdatePanel>
  142. </div>
  143. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam risus erat, congue
  144. id, cursus et, rutrum sed, nulla. Nulla tincidunt accumsan lorem. Nam consequat,
  145. ligula vitae aliquet lobortis, magna odio nonummy turpis, et elementum massa magna
  146. et sapien. Donec urna justo, pulvinar bibendum, condimentum quis, condimentum non,
  147. libero. Vestibulum placerat tempor ante. Fusce quis erat in eros dapibus egestas.
  148. Integer ac mi sed libero laoreet pretium. Pellentesque habitant morbi tristique
  149. senectus et netus et malesuada fames ac turpis egestas. Aliquam tempor velit in
  150. odio. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
  151. hymenaeos. Fusce aliquet metus. Nunc luctus hendrerit pede. Sed vitae sapien nec
  152. diam accumsan volutpat. Nunc vitae diam et elit porta ultricies. Aliquam erat volutpat.
  153. Donec nec odio id lorem condimentum sollicitudin. Cras sodales risus nec nibh. Sed
  154. diam elit, porttitor vitae, luctus ac, sollicitudin in, magna. Mauris nonummy venenatis
  155. tellus. Morbi sed libero. Donec pellentesque commodo leo. Nullam tempor est eget
  156. tortor. Phasellus tincidunt velit nec massa. Donec et dui sed lectus malesuada adipiscing.
  157. In molestie dui nec ante sagittis aliquam. Curabitur sem velit, bibendum eget, dapibus
  158. vitae, malesuada eu, nisi. Cras tortor sapien, tincidunt at, sagittis non, elementum
  159. sed, turpis. Aliquam pretium nibh in sapien. Duis urna lectus, auctor lobortis,
  160. rutrum eget, tempor porta, lorem. In hac habitasse platea dictumst. Pellentesque
  161. lacinia orci aliquam sem. Ut aliquet. Nunc sollicitudin, quam ac tristique interdum,
  162. metus pede blandit orci, vel ornare est risus nec diam. Sed dictum. Integer aliquam
  163. nisl sed tortor. In volutpat dolor. Cum sociis natoque penatibus et magnis dis parturient
  164. montes, nascetur ridiculus mus. Donec ut sem dignissim tellus fringilla sodales.
  165. Sed auctor. Donec nonummy dolor sit amet metus. Curabitur convallis viverra nisl.
  166. Aliquam erat volutpat. Nulla malesuada sollicitudin dui. Integer facilisis. Praesent
  167. leo arcu, rhoncus quis, volutpat tempor, molestie quis, purus. Integer pretium ullamcorper
  168. magna. Donec hendrerit enim non turpis. Nunc vitae justo. Donec semper euismod urna.
  169. Ut sem quam, ullamcorper a, ultrices dapibus, placerat at, orci. Donec scelerisque,
  170. enim eget euismod egestas, dui quam placerat mauris, interdum vehicula leo magna
  171. id ligula. Aliquam et libero. Donec gravida erat eu metus. Nullam vehicula risus
  172. aliquam ante. Fusce ipsum libero, ullamcorper a, pellentesque ac, tincidunt quis,
  173. leo. Cras eget ligula. Aenean lectus. Fusce condimentum venenatis urna. Quisque
  174. porta, eros id ultrices posuere, nisl ante lacinia libero, vel laoreet diam urna
  175. ac neque. Integer commodo. Maecenas augue erat, sodales non, tristique vel, posuere
  176. eu, ante. Quisque in odio. Maecenas lorem.
  177. </div>
  178. </form>
  179. </body>
  180. </html>