⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 callbacktimer.aspx

📁 一个AJAX框架
💻 ASPX
字号:
<%@ Page language="C#" MasterPageFile="~/MasterPage.master" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
	<ajax:ajaxpanel ID="Ajaxpanel1" runat="server">
	<fieldset>
		<legend>Windows Processes (list is updated every 10 seconds using Callback Timer)</legend>
		<i>This example demonstrates the use of the MagicAjax CallbackTimer. <br />For this example we've set the Callback timer in the Page_Load event (hint: click 'View Source' at the bottom of this page to see the complete source of this aspx file).</i><br /><br />
		<div style="overflow:auto;height:400px;width:325px">
		<asp:DataGrid AutoGenerateColumns="false" AllowSorting="True" OnSortCommand="grid_SortCommand" runat="server" ID="DataGrid1" BackColor="White" BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px" CellPadding="5" GridLines="Horizontal" >
			<FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
			<SelectedItemStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
			<PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" Mode="NumericPages" />
			<AlternatingItemStyle BackColor="#F7F7F7" />
			<ItemStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" />
			<HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" />
			<Columns>
				<asp:BoundColumn DataField="ProcessName" SortExpression="ProcessName" HeaderText="Image Name" />
				<asp:BoundColumn DataField="PhysicalMemory" SortExpression="PhysicalMemory" HeaderText="Mem Usage" DataFormatString="{0:###,###,###} K" />
				<asp:BoundColumn DataField="HandleCount" SortExpression="HandleCount" HeaderText="Handles" DataFormatString="{0:###,###}" />
			</Columns>
		</asp:DataGrid>
		</div>
	</fieldset>
	</ajax:ajaxpanel>
</asp:Content>

<script language="C#" runat="server">
	private void Page_Load(object sender, EventArgs e)
	{
		if (!IsPostBack)
		{
			// For automatic CallBack every 10 seconds.
			MagicAjax.AjaxCallHelper.SetAjaxCallTimerInterval(10000);
		}
		ShowProcesses();
	}

	private void ShowProcesses()
	{
		System.Diagnostics.Process[] processes = System.Diagnostics.Process.GetProcesses();

		System.Data.DataTable dt = new System.Data.DataTable("Processes");
		dt.Columns.Add("ProcessName");
		dt.Columns.Add("PhysicalMemory", typeof(Int64));
		dt.Columns.Add("HandleCount", typeof(Int32));

		foreach (System.Diagnostics.Process process in processes)
		{
			dt.Rows.Add(new object[] {process.ProcessName, process.WorkingSet64 /1000, process.HandleCount });
		}

		System.Data.DataView dv = dt.DefaultView;

		//sort data
		dv.Sort = SortExpression;

		//bind data
		DataGrid1.DataSource = dv;
		DataGrid1.DataBind();
	}

	 /// <summary>
	 /// SortExpression of the grid (stored in ViewState!)
	 /// </summary>
	 private string SortExpression
	 {
		 get
		 {
			 if (ViewState["_grid_SortExpression"] != null)
			 {
				 return (string)ViewState["_grid_SortExpression"];
			 }
			 else
			 {
						return "PhysicalMemory desc"; //default
			 }
		 }
		 set
		 {
			 ViewState["_grid_SortExpression"] = value;
		 }
	 }

	 private void grid_SortCommand(object source, DataGridSortCommandEventArgs e)
	 {
			string[] currentSort = SortExpression.Split(' ');
			
			if (currentSort[0] == e.SortExpression)
			{
				SortExpression = string.Format("{0} {1}", e.SortExpression, currentSort[1] == "desc" ? "asc" : "desc");
			}
			else
			{
				SortExpression = e.SortExpression + " asc";
			}

		 //refill datagrid
		ShowProcesses();
	 }
</script>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -