Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

689 lines
19 KiB

  1. #define FILE_SERVER //FILE_LOCAL FILE_SERVER
  2. using System;
  3. using System.Collections;
  4. using System.ComponentModel;
  5. using System.Data;
  6. using System.Drawing;
  7. using System.Web;
  8. using System.Web.SessionState;
  9. using System.Web.UI;
  10. using System.Web.UI.WebControls;
  11. using System.Web.UI.HtmlControls;
  12. using System.Reflection;
  13. using System.Runtime.InteropServices;
  14. using Microsoft.Win32;
  15. using System.Security.Permissions;
  16. using System.Data.SqlClient;
  17. using System.IO;
  18. namespace OCAWReports
  19. {
  20. /// <summary>
  21. /// Summary description for WeeklyReport.
  22. /// </summary>
  23. public class DailyReport : System.Web.UI.Page
  24. {
  25. protected System.Web.UI.WebControls.Table tblUploads;
  26. protected System.Web.UI.WebControls.Image imgAvg;
  27. protected System.Web.UI.WebControls.Table tblDifference;
  28. protected System.Web.UI.WebControls.Calendar Calendar1;
  29. protected System.Web.UI.WebControls.Image imgWeekly;
  30. private void Page_Load(object sender, System.EventArgs e)
  31. {
  32. Response.Cache.SetExpires(DateTime.Now.AddHours(-1));
  33. Response.ExpiresAbsolute = DateTime.Now;
  34. Response.Cache.SetCacheability(HttpCacheability.NoCache);
  35. Response.CacheControl = "no-cache";
  36. Response.AddHeader("Pragma", "no-cache");
  37. Response.AddHeader("Expires", "-1");
  38. Response.Expires = -1;
  39. Page.Response.Expires = -1;
  40. Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1));
  41. // Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1));
  42. // Response.Cache.SetCacheability(HttpCacheability.Public);
  43. // Response.Cache.SetValidUntilExpires(true);
  44. // Cache.
  45. // imgWeekly.EnableViewState = false;
  46. // imgWeekly.Page.EnableViewState = false;
  47. // Page.EnableViewState = false;
  48. if(Page.IsPostBack == false)
  49. {
  50. int x = -1;
  51. int rowCnt = 7;
  52. int rowCtr=0;
  53. int cellCtr=0;
  54. int cellCnt = 4;
  55. string sFName;
  56. long[] lACount = new long[7];
  57. long[] LAWatson = new long[7];
  58. long[] LAArchive = new long[7];
  59. long lCount=0, lArchive=0, lWatson=0;
  60. Object[] yValues = new Object[7];
  61. Object[] LAGraph = new Object[3];
  62. Object[] xValues = new Object[7];
  63. Object[] yValues1 = new Object[3];
  64. Object[] xValues1 = new Object[3];
  65. OCAData.CCountDailyClass rpt = new OCAData.CCountDailyClass();
  66. System.DateTime dDate = new System.DateTime(System.DateTime.Now.Year, System.DateTime.Now.Month,
  67. System.DateTime.Now.Day);
  68. OWC.WCChart oChart, oChart1;
  69. OWC.ChartSpaceClass oSpace = new OWC.ChartSpaceClass();
  70. OWC.ChartSpaceClass oSpace1 = new OWC.ChartSpaceClass();
  71. OWC.WCSeries oSeries1;
  72. SqlConnection cn = new SqlConnection("Persist Security Info=False;Pwd=ocarpts@2;User ID=ocarpts;Initial Catalog=SnapShot;Data Source=TKWUCDSQLA02");
  73. SqlCommand cm = new SqlCommand();
  74. SqlDataReader dr;
  75. double dbDays = -7;
  76. DateTime dDate2 = DateTime.Now;
  77. oSpace.Clear();
  78. oSpace.Refresh();
  79. oChart = oSpace.Charts.Add(0);
  80. oChart.HasLegend = true;
  81. oChart.HasTitle = true;
  82. for(x=0;x<3;x++)
  83. {
  84. oChart.SeriesCollection.Add(x);
  85. }
  86. for(x=0;x<7;x++)
  87. {
  88. lACount[x] = rpt.GetDailyCount(dDate.AddDays(-(x + 1)));
  89. }
  90. cn.Open();
  91. cm.CommandType = CommandType.StoredProcedure;
  92. cm.CommandTimeout = 240;
  93. cm.CommandText = "GetSnapshot";
  94. cm.Connection = cn;
  95. cm.Parameters.Add("@CreatedDate", System.Data.SqlDbType.DateTime);
  96. dDate2 = dDate.AddDays(dbDays);
  97. cm.Parameters["@CreatedDate"].Value = dDate.AddDays(-1);
  98. dr = cm.ExecuteReader();
  99. Calendar1.SelectedDate = dDate2;
  100. dr.Read();
  101. for(x = 0; x < 7; x++)
  102. {
  103. try
  104. {
  105. if(dr.GetDateTime(1) == dDate.AddDays(-(x + 1)))
  106. {
  107. LAWatson[x] = dr.GetInt32(2);
  108. LAArchive[x] = dr.GetInt32(3);
  109. dr.Read();
  110. }
  111. else
  112. {
  113. LAWatson[x] = 0;
  114. LAArchive[x] = 0;
  115. }
  116. }
  117. catch
  118. {
  119. LAWatson[x] = 0;
  120. LAArchive[x] = 0;
  121. }
  122. }
  123. //**********************************************************************************************************
  124. oChart.Title.Caption = "Database - Server Comparison Chart";
  125. for(x = 0; x < 7; x++)
  126. {
  127. xValues[x] = lACount[x].ToString();
  128. }
  129. oChart.SeriesCollection[0].Caption = "Database";
  130. oChart.SeriesCollection[0].SetData((OWC.ChartDimensionsEnum) OWC.ChartDimensionsEnum.chDimValues, -1, xValues);
  131. OWC.ChartDimensionsEnum c = OWC.ChartDimensionsEnum.chDimValues;
  132. oChart.SeriesCollection[0].SetData(c, -1, xValues);
  133. for(x = 0; x < 7; x++)
  134. {
  135. xValues[x] = LAWatson[x].ToString();
  136. }
  137. oChart.SeriesCollection[1].Caption = "Watson";
  138. oChart.SeriesCollection[1].SetData(OWC.ChartDimensionsEnum.chDimValues, -1, xValues);
  139. for(x = 0; x < 7; x++)
  140. {
  141. xValues[x] = LAArchive[x].ToString();
  142. }
  143. oChart.SeriesCollection[2].Caption = "Archive";
  144. oChart.SeriesCollection[2].SetData(OWC.ChartDimensionsEnum.chDimValues, -1, xValues);
  145. for(x = 0; x < 7; x++)
  146. {
  147. yValues.SetValue(dDate.AddDays(-(x + 1)).ToShortDateString(), x);
  148. }
  149. oChart.SeriesCollection[0].SetData(OWC.ChartDimensionsEnum.chDimCategories, -1, yValues);
  150. //**********************************************************************************************************
  151. sFName = "Weekly";
  152. try
  153. {
  154. oSpace.ExportPicture(Server.MapPath(sFName + ".gif"), "gif", 707, 476);
  155. imgWeekly.ImageUrl = sFName + ".gif";
  156. }
  157. catch
  158. {
  159. }
  160. imgWeekly.EnableViewState = false;
  161. oSpace1.Clear();
  162. oSpace1.Refresh();
  163. oChart1 = oSpace1.Charts.Add(0);
  164. oChart1.Type = OWC.ChartChartTypeEnum.chChartTypeBarClustered;
  165. oSeries1 = oChart1.SeriesCollection.Add(0);
  166. for(x=0;x<7;x++)
  167. {
  168. lCount = lCount + lACount[x];
  169. lWatson = lWatson + LAWatson[x];
  170. lArchive = lArchive + LAArchive[x];
  171. }
  172. lCount = lCount / x;
  173. lWatson = lWatson / x;
  174. lArchive = lArchive / x;
  175. xValues1.SetValue(lCount.ToString(), 0);
  176. xValues1.SetValue(lWatson.ToString(), 1);
  177. xValues1.SetValue(lArchive.ToString(), 2);
  178. yValues1.SetValue("Database", 0);
  179. yValues1.SetValue("Watson", 1);
  180. yValues1.SetValue("Archive", 2);
  181. oChart1.HasTitle = true;
  182. oChart1.Title.Caption = "Database - Average Weekly Uploads";
  183. oSeries1.Caption = "Average Weekly"; //chDimCategories
  184. oSeries1.SetData(OWC.ChartDimensionsEnum.chDimCategories, -1, yValues1);
  185. oSeries1.SetData(OWC.ChartDimensionsEnum.chDimValues, -1, xValues1);
  186. oSeries1.Type = OWC.ChartChartTypeEnum.chChartTypeColumnStacked;
  187. sFName = "Avg";
  188. try
  189. {
  190. oSpace1.ExportPicture(Server.MapPath(sFName), "gif", 707, 476);
  191. imgAvg.ImageUrl = sFName;
  192. }
  193. catch
  194. {
  195. }
  196. for(rowCtr=0; rowCtr <= rowCnt; rowCtr++)
  197. {
  198. TableRow tRow = new TableRow();
  199. tblUploads.Rows.Add(tRow);
  200. for (cellCtr = 1; cellCtr <= cellCnt; cellCtr++)
  201. {
  202. TableCell tCell = new TableCell();
  203. if(rowCtr == 0)
  204. {
  205. switch(cellCtr)
  206. {
  207. case 1 :
  208. tCell.Text = "Date";
  209. break;
  210. case 2 :
  211. tCell.Text = "DB Count";
  212. break;
  213. case 3 :
  214. tCell.Text = "Watson";
  215. break;
  216. case 4 :
  217. tCell.Text = "Archive";
  218. break;
  219. default:
  220. tCell.Text = "0";
  221. break;
  222. }
  223. tCell.Style["font-size"] = "small";
  224. }
  225. else
  226. {
  227. switch(cellCtr)
  228. {
  229. case 1 :
  230. tCell.Text = dDate.AddDays(-rowCtr).ToShortDateString();
  231. break;
  232. case 2 :
  233. tCell.Text = lACount[rowCtr-1].ToString();
  234. break;
  235. case 3 :
  236. tCell.Text = LAWatson[rowCtr-1].ToString();
  237. break;
  238. case 4 :
  239. tCell.Text = LAArchive[rowCtr-1].ToString();
  240. break;
  241. default:
  242. tCell.Text = "0";
  243. break;
  244. }
  245. tCell.Style["background-color"] = "white";
  246. tCell.Style["font-size"] = "small-x";
  247. tCell.Style["color"] = "#6487dc";
  248. tCell.Style["font-weight"] = "Bold";
  249. }
  250. tCell.Style["font-family"] = "Tahoma";
  251. tRow.Cells.Add(tCell);
  252. }
  253. }
  254. for(rowCtr=0; rowCtr <= rowCnt; rowCtr++)
  255. {
  256. TableRow tRowDiff = new TableRow();
  257. tblDifference.Rows.Add(tRowDiff);
  258. for (cellCtr = 1; cellCtr <= cellCnt; cellCtr++)
  259. {
  260. TableCell tCell = new TableCell();
  261. if(rowCtr == 0)
  262. {
  263. switch(cellCtr)
  264. {
  265. case 1 :
  266. tCell.Text = "Date";
  267. break;
  268. case 2 :
  269. tCell.Text = "Archive vs Watson";
  270. break;
  271. case 3 :
  272. tCell.Text = "SQL vs Archive";
  273. break;
  274. case 4 :
  275. tCell.Text = "SQL vs Watson";
  276. break;
  277. default:
  278. tCell.Text = "0";
  279. break;
  280. }
  281. tCell.Style["font-size"] = "small";
  282. }
  283. else
  284. {
  285. switch(cellCtr)
  286. {
  287. case 1 :
  288. tCell.Text = dDate.AddDays(-(rowCtr)).ToShortDateString();
  289. break;
  290. case 2 :
  291. lCount = LAArchive[rowCtr-1] - LAWatson[rowCtr-1];
  292. tCell.Text = lCount.ToString();
  293. break;
  294. case 3 :
  295. lCount = lACount[rowCtr-1] - LAWatson[rowCtr-1];
  296. tCell.Text = lCount.ToString();
  297. break;
  298. case 4 :
  299. lCount = lACount[rowCtr-1] - LAArchive[rowCtr-1];
  300. tCell.Text = lCount.ToString();
  301. break;
  302. default:
  303. tCell.Text = "0";
  304. break;
  305. }
  306. tCell.Style["background-color"] = "white";
  307. tCell.Style["font-size"] = "small-x";
  308. tCell.Style["color"] = "#6487dc";
  309. tCell.Style["font-weight"] = "Bold";
  310. }
  311. tCell.Style["font-family"] = "Tahoma";
  312. tRowDiff.Cells.Add(tCell);
  313. }
  314. }
  315. }
  316. }
  317. #region Web Form Designer generated code
  318. override protected void OnInit(EventArgs e)
  319. {
  320. //
  321. // CODEGEN: This call is required by the ASP.NET Web Form Designer.
  322. //
  323. InitializeComponent();
  324. base.OnInit(e);
  325. }
  326. /// <summary>
  327. /// Required method for Designer support - do not modify
  328. /// the contents of this method with the code editor.
  329. /// </summary>
  330. private void InitializeComponent()
  331. {
  332. this.imgWeekly.PreRender += new System.EventHandler(this.imgWeekly_PreRender);
  333. this.imgWeekly.Load += new System.EventHandler(this.imgWeekly_Load);
  334. this.Calendar1.SelectionChanged += new System.EventHandler(this.Calendar1_SelectionChanged);
  335. this.ID = "DailyReport";
  336. this.Load += new System.EventHandler(this.Page_Load);
  337. }
  338. #endregion
  339. private void Calendar1_SelectionChanged(object sender, System.EventArgs e)
  340. {
  341. int x = -1;
  342. int y = 0;
  343. int rowCnt = 7;
  344. int rowCtr=0;
  345. int cellCtr=0;
  346. int cellCnt = 4;
  347. string sFName;
  348. long[] lACount = new long[7];
  349. long[] LAWatson = new long[7];
  350. long[] LAArchive = new long[7];
  351. long lCount=0, lArchive=0, lWatson=0;
  352. Object[] yValues = new Object[7];
  353. Object[] LAGraph = new Object[3];
  354. Object[] xValues = new Object[7];
  355. Object[] yValues1 = new Object[3];
  356. Object[] xValues1 = new Object[3];
  357. OCAData.CCountDailyClass rpt = new OCAData.CCountDailyClass();
  358. System.DateTime dDate = new System.DateTime(System.DateTime.Now.Year, System.DateTime.Now.Month,
  359. System.DateTime.Now.Day);
  360. OWC.WCChart oChart, oChart1;
  361. OWC.ChartSpaceClass oSpace = new OWC.ChartSpaceClass();
  362. OWC.ChartSpaceClass oSpace1 = new OWC.ChartSpaceClass();
  363. OWC.WCSeries oSeries1;
  364. SqlConnection cn = new SqlConnection("Persist Security Info=False;Pwd=ocarpts@2;User ID=ocarpts;Initial Catalog=SnapShot;Data Source=TKWUCDSQLA02");
  365. SqlCommand cm = new SqlCommand();
  366. SqlDataReader dr;
  367. Response.CacheControl = "no-cache";
  368. Response.AddHeader("Pragma", "no-cache");
  369. Response.AddHeader("Expires", "-1");
  370. Response.Expires = -1;
  371. oSpace.Clear();
  372. oSpace.Refresh();
  373. oChart = oSpace.Charts.Add(0);
  374. oChart.HasLegend = true;
  375. oChart.HasTitle = true;
  376. for(x=0;x<3;x++)
  377. {
  378. oChart.SeriesCollection.Add(x);
  379. }
  380. dDate = Calendar1.SelectedDate;
  381. for(x = 0, y = 6;x < 7;x++, y--)
  382. {
  383. lACount[x] = rpt.GetDailyCount(dDate.AddDays(y));
  384. }
  385. cn.Open();
  386. cm.CommandType = CommandType.StoredProcedure;
  387. cm.CommandTimeout = 240;
  388. cm.CommandText = "GetSnapshot";
  389. cm.Connection = cn;
  390. cm.Parameters.Add("@CreatedDate", System.Data.SqlDbType.DateTime);
  391. cm.Parameters["@CreatedDate"].Value = dDate.AddDays(6);
  392. dr = cm.ExecuteReader();
  393. dr.Read();
  394. for(x = 0; x < 7; x++)
  395. {
  396. try
  397. {
  398. // if(dr.GetDateTime(1) == dDate.AddDays((x + 1)))
  399. // {
  400. LAWatson[x] = dr.GetInt32(2);
  401. LAArchive[x] = dr.GetInt32(3);
  402. dr.Read();
  403. // }
  404. // else
  405. // {
  406. // LAWatson[x] = 0;
  407. // LAArchive[x] = 0;
  408. // }
  409. }
  410. catch
  411. {
  412. LAWatson[x] = 0;
  413. LAArchive[x] = 0;
  414. }
  415. }
  416. //**********************************************************************************************************
  417. oChart.Title.Caption = "Database - Server Comparison Chart";
  418. for(x = 0; x < 7; x++)
  419. {
  420. xValues[x] = lACount[x].ToString();
  421. }
  422. oChart.SeriesCollection[0].Caption = "Database";
  423. oChart.SeriesCollection[0].SetData((OWC.ChartDimensionsEnum) OWC.ChartDimensionsEnum.chDimValues, -1, xValues);
  424. OWC.ChartDimensionsEnum c = OWC.ChartDimensionsEnum.chDimValues;
  425. oChart.SeriesCollection[0].SetData(c, -1, xValues);
  426. for(x = 0; x < 7; x++)
  427. {
  428. xValues[x] = LAWatson[x].ToString();
  429. }
  430. oChart.SeriesCollection[1].Caption = "Watson";
  431. oChart.SeriesCollection[1].SetData(OWC.ChartDimensionsEnum.chDimValues, -1, xValues);
  432. for(x = 0; x < 7; x++)
  433. {
  434. xValues[x] = LAArchive[x].ToString();
  435. }
  436. oChart.SeriesCollection[2].Caption = "Archive";
  437. oChart.SeriesCollection[2].SetData(OWC.ChartDimensionsEnum.chDimValues, -1, xValues);
  438. for(x = 0, y = 6; x < 7; x++, y--)
  439. {
  440. yValues.SetValue(dDate.AddDays((y)).ToShortDateString(), x);
  441. }
  442. oChart.SeriesCollection[0].SetData(OWC.ChartDimensionsEnum.chDimCategories, -1, yValues);
  443. //**********************************************************************************************************
  444. sFName = "Weekly";
  445. try
  446. {
  447. oSpace.ExportPicture(Server.MapPath(sFName + ".gif"), "gif", 707, 476);
  448. }
  449. catch
  450. {
  451. }
  452. imgWeekly.EnableViewState = false;
  453. imgWeekly.Page.EnableViewState = false;
  454. Page.EnableViewState = false;
  455. imgWeekly.ImageUrl = sFName + ".gif";
  456. oSpace1.Clear();
  457. oSpace1.Refresh();
  458. oChart1 = oSpace1.Charts.Add(0);
  459. oChart1.Type = OWC.ChartChartTypeEnum.chChartTypeBarClustered;
  460. oSeries1 = oChart1.SeriesCollection.Add(0);
  461. for(x=0;x<7;x++)
  462. {
  463. lCount = lCount + lACount[x];
  464. lWatson = lWatson + LAWatson[x];
  465. lArchive = lArchive + LAArchive[x];
  466. }
  467. lCount = lCount / x;
  468. lWatson = lWatson / x;
  469. lArchive = lArchive / x;
  470. xValues1.SetValue(lCount.ToString(), 0);
  471. xValues1.SetValue(lWatson.ToString(), 1);
  472. xValues1.SetValue(lArchive.ToString(), 2);
  473. yValues1.SetValue("Database", 0);
  474. yValues1.SetValue("Watson", 1);
  475. yValues1.SetValue("Archive", 2);
  476. oChart1.HasTitle = true;
  477. oChart1.Title.Caption = "Database - Average Weekly Uploads";
  478. oSeries1.Caption = "Average Weekly"; //chDimCategories
  479. oSeries1.SetData(OWC.ChartDimensionsEnum.chDimCategories, -1, yValues1);
  480. oSeries1.SetData(OWC.ChartDimensionsEnum.chDimValues, -1, xValues1);
  481. oSeries1.Type = OWC.ChartChartTypeEnum.chChartTypeColumnStacked;
  482. sFName = "Avg";
  483. try
  484. {
  485. oSpace1.ExportPicture(Server.MapPath(sFName), "gif", 707, 476);
  486. imgAvg.ImageUrl = sFName;
  487. }
  488. catch
  489. {
  490. }
  491. for(rowCtr=0, y = 7; rowCtr <= rowCnt; rowCtr++, y--)
  492. {
  493. TableRow tRow = new TableRow();
  494. tblUploads.Rows.Add(tRow);
  495. for (cellCtr = 1; cellCtr <= cellCnt; cellCtr++)
  496. {
  497. TableCell tCell = new TableCell();
  498. if(rowCtr == 0)
  499. {
  500. switch(cellCtr)
  501. {
  502. case 1 :
  503. tCell.Text = "Date";
  504. break;
  505. case 2 :
  506. tCell.Text = "DB Count";
  507. break;
  508. case 3 :
  509. tCell.Text = "Watson";
  510. break;
  511. case 4 :
  512. tCell.Text = "Archive";
  513. break;
  514. default:
  515. tCell.Text = "0";
  516. break;
  517. }
  518. tCell.Style["font-size"] = "small";
  519. }
  520. else
  521. {
  522. switch(cellCtr)
  523. {
  524. case 1 :
  525. tCell.Text = dDate.AddDays(y).ToShortDateString();
  526. break;
  527. case 2 :
  528. tCell.Text = lACount[rowCtr-1].ToString();
  529. break;
  530. case 3 :
  531. tCell.Text = LAWatson[rowCtr-1].ToString();
  532. break;
  533. case 4 :
  534. tCell.Text = LAArchive[rowCtr-1].ToString();
  535. break;
  536. default:
  537. tCell.Text = "0";
  538. break;
  539. }
  540. tCell.Style["background-color"] = "white";
  541. tCell.Style["font-size"] = "small-x";
  542. tCell.Style["color"] = "#6487dc";
  543. tCell.Style["font-weight"] = "Bold";
  544. }
  545. tCell.Style["font-family"] = "Tahoma";
  546. tRow.Cells.Add(tCell);
  547. }
  548. }
  549. for(rowCtr=0, y = 7; rowCtr <= rowCnt; rowCtr++, y--)
  550. {
  551. TableRow tRowDiff = new TableRow();
  552. tblDifference.Rows.Add(tRowDiff);
  553. for (cellCtr = 1; cellCtr <= cellCnt; cellCtr++)
  554. {
  555. TableCell tCell = new TableCell();
  556. if(rowCtr == 0)
  557. {
  558. switch(cellCtr)
  559. {
  560. case 1 :
  561. tCell.Text = "Date";
  562. break;
  563. case 2 :
  564. tCell.Text = "Archive vs Watson";
  565. break;
  566. case 3 :
  567. tCell.Text = "SQL vs Archive";
  568. break;
  569. case 4 :
  570. tCell.Text = "SQL vs Watson";
  571. break;
  572. default:
  573. tCell.Text = "0";
  574. break;
  575. }
  576. tCell.Style["font-size"] = "small";
  577. }
  578. else
  579. {
  580. switch(cellCtr)
  581. {
  582. case 1 :
  583. tCell.Text = dDate.AddDays(y).ToShortDateString();
  584. break;
  585. case 2 :
  586. lCount = LAArchive[rowCtr-1] - LAWatson[rowCtr-1];
  587. tCell.Text = lCount.ToString();
  588. break;
  589. case 3 :
  590. lCount = lACount[rowCtr-1] - LAWatson[rowCtr-1];
  591. tCell.Text = lCount.ToString();
  592. break;
  593. case 4 :
  594. lCount = lACount[rowCtr-1] - LAArchive[rowCtr-1];
  595. tCell.Text = lCount.ToString();
  596. break;
  597. default:
  598. tCell.Text = "0";
  599. break;
  600. }
  601. tCell.Style["background-color"] = "white";
  602. tCell.Style["font-size"] = "small-x";
  603. tCell.Style["color"] = "#6487dc";
  604. tCell.Style["font-weight"] = "Bold";
  605. }
  606. tCell.Style["font-family"] = "Tahoma";
  607. tRowDiff.Cells.Add(tCell);
  608. }
  609. }
  610. }
  611. private void imgWeekly_Load(object sender, System.EventArgs e)
  612. {
  613. imgWeekly.ImageUrl = "";
  614. }
  615. private void imgWeekly_PreRender(object sender, System.EventArgs e)
  616. {
  617. imgWeekly.ImageUrl = "Weekly.gif";
  618. }
  619. }
  620. }