91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 0.03M
    文件類型: .rar
    金幣: 1
    下載: 0 次
    發布日期: 2021-02-26
  • 語言: C#
  • 標簽: 刷新??

資源簡介

【實例簡介】實現了用戶操作時 刷新導致的重復操作問題。

實現原理如下:

 

使用一個上下文唯一的票據號,該票據號隨頁面提交或回發而遞增,每當用戶與服務器端交互時,代碼會提取上次的票據號碼并與當前票據號碼比較,如果當前票據大于上次的票據,則是提交或回發,否則則識別為刷新。

    這種方式會用到HttpMoudel,并在其中操作Session。

 

使用方法如下:

 

1、引入dll MsdnExt 壓縮包中有
2.修改web.config,在<httpModules> </httpModules>添加以下item:

       <add name="MsdnModule" type="Msdn.RefreshModule, MsdnExt"/>

       其中“MsdnModule”是一個名字, “Msdn.RefreshModule”是“Msdn”下的“RefreshModule”類型,“MsdnExt”是程序集的名字

3.引入命名空間 using Msdn; 并修改頁面類繼承Msdn.Page

4.使用代碼


 

代碼:

 

protected void Button1_Click(object sender, EventArgs e)      
 {           
 if (!IsPageRefresh)                
Response.Write("按鈕事件");            
else                
Response.Write("頁面刷新");
TrackRefreshState();
}

MSDNPage.cs 核心代碼如下:

using System;
using System.Web.UI;
using System.Web;
using System.Text;


namespace Msdn
{
	public class Page : System.Web.UI.Page
	{
		#region Constants

		// ***********************************************************
		// Constants
		public const string RefreshTicketCounter = "RefreshTicketCounter";
		private const string SetFocusFunctionName = "__setFocus";
		private const string SetFocusScriptName = "__inputFocusHandler";
		// ***********************************************************

		#endregion


		// ***********************************************************
		// Ctor
		public Page()
		{
			m_focusedControl = "";

			// Register a PreRender handler
			this.PreRender  = new EventHandler(RefreshPage_PreRender);
		}
		// ***********************************************************

		// **************************************************************
		// Indicates if the page is being viewed in response to F5 hit
		public bool IsPageRefresh
		{
			get 
			{
				object o = HttpContext.Current.Items[RefreshAction.PageRefreshEntry];
				if (o == null)
					return false;
				return (bool) o; 
			}
		}
		// **************************************************************

		// **************************************************************
		// Increase the internal counter used to generate refresh tickets
		public void TrackRefreshState()
		{
			InitRefreshState();
			int ticket = Convert.ToInt32(Session[RefreshTicketCounter])   1;
			Session[RefreshTicketCounter] = ticket;
		}
		// **************************************************************
		
		// **************************************************************
		// Set the control with the input focus
		public void SetFocus(string ctlId)
		{
			m_focusedControl = ctlId;
		}
		// **************************************************************


		#region Private Members

		// **************************************************************
		// Create the hidden field to store the current request ticket
		private void SaveRefreshState()
		{
			int ticket = Convert.ToInt32(Session[RefreshTicketCounter])   1;
			RegisterHiddenField(RefreshAction.CurrentRefreshTicketEntry, ticket.ToString()); 
		}
		// **************************************************************

		// **************************************************************
		// Ensure that the ticket counter is initialized
		private void InitRefreshState()
		{
			if (Session[RefreshTicketCounter] == null)
				Session[RefreshTicketCounter] = 0;	
		}
		// **************************************************************

		// **************************************************************
		// Handle the PreRender event
		private void RefreshPage_PreRender(object sender, EventArgs e)
		{
			SaveRefreshState();
			AddSetFocusScript();
		}
		// **************************************************************

		// **************************************************************
		// Add any script code required for the SetFocus feature
		private void AddSetFocusScript()
		{
			if (m_focusedControl == "")
				return;

			// Add the script to declare the function
			// (Only one form in ASP.NET pages)
			StringBuilder sb = new StringBuilder("");
			sb.Append("<script language=javascript>");
			sb.Append("function ");
			sb.Append(SetFocusFunctionName);
			sb.Append("(ctl) {");
			sb.Append("  if (document.forms[0][ctl] != null)");
			sb.Append("  {document.forms[0][ctl].focus();}");
			sb.Append("}");

			// Add the script to call the function
			sb.Append(SetFocusFunctionName);
			sb.Append("('");
			sb.Append(m_focusedControl);
			sb.Append("');<");
			sb.Append("/");   // break like this to avoid misunderstandings...
			sb.Append("script>");

			// Register the script (names are CASE-SENSITIVE)
			if (!IsStartupScriptRegistered(SetFocusScriptName)) 
				RegisterStartupScript(SetFocusScriptName, sb.ToString());
		}
		// **************************************************************

		#endregion


		#region Private Properties
		// ***********************************************************
		// Private properties
		private string m_focusedControl;
		// ***********************************************************
		#endregion
	}
}

 

資源截圖

代碼片段和文件信息

using?System;
using?System.Web.UI;
using?System.Web;
using?System.Web.UI.HtmlControls;


namespace?Msdn
{
public?class?FeedbackbasePage?:?System.Web.UI.Page
{
//?***********************************************************
//?Ctor
public?FeedbackbasePage()
{
//?Register?a?Load?handler
this.Load?+=?new?EventHandler(FeedbackbasePage_Load);
}
//?***********************************************************

//?***********************************************************
//?Constants
public?const?string?BodyId?=?“Body“;
//?***********************************************************

//?***********************************************************
//?Public?members
public?string?TargetUrl?=?““;
//?***********************************************************

//?***********************************************************
//?Inject?auto-redirect?code?in?the?onload?DHTML?event
public?string?GetAutoRedirectscript()
{
retur

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????目錄??????????0??2010-02-06?13:48??Refresh

?????目錄??????????0??2010-02-05?11:38??Refresh\App_Data

?????目錄??????????0??2010-02-06?13:41??Refresh\bin

?????文件???????8704??2010-02-06?13:48??Refresh\bin\Refresh.dll

?????文件??????30208??2010-02-06?13:48??Refresh\bin\Refresh.pdb

?????目錄??????????0??2010-02-06?13:47??Refresh\Class

?????文件???????2075??2010-02-06?13:47??Refresh\Class\FeedbackbasePage.cs

?????文件???????1167??2010-02-06?13:47??Refresh\Class\LengthyAction.cs

?????文件???????4339??2010-02-06?13:47??Refresh\Class\MsdnPage.cs

?????文件???????2765??2010-02-06?13:47??Refresh\Class\RefreshAction.cs

?????文件???????1123??2010-02-06?13:47??Refresh\Class\RefreshModule.cs

?????文件????????550??2010-02-06?13:42??Refresh\Default.aspx

?????文件????????806??2010-02-06?13:43??Refresh\Default.aspx.cs

?????文件???????1185??2010-02-06?13:42??Refresh\Default.aspx.designer.cs

?????目錄??????????0??2010-02-06?13:35??Refresh\obj

?????目錄??????????0??2010-02-06?13:48??Refresh\obj\Debug

?????文件????????437??2010-02-06?13:42??Refresh\obj\Debug\Refresh.csproj.FileListAbsolute.txt

?????文件???????8704??2010-02-06?13:48??Refresh\obj\Debug\Refresh.dll

?????文件??????30208??2010-02-06?13:48??Refresh\obj\Debug\Refresh.pdb

?????目錄??????????0??2010-02-05?11:38??Refresh\obj\Debug\TempPE

?????目錄??????????0??2010-02-06?13:35??Refresh\Properties

?????文件???????1314??2010-02-05?11:38??Refresh\Properties\AssemblyInfo.cs

?????文件???????4454??2010-02-06?13:48??Refresh\Refresh.csproj

?????文件???????1300??2010-02-06?13:48??Refresh\Refresh.csproj.user

?????文件???????7891??2010-02-06?13:48??Refresh\Web.config

?????文件????????911??2010-02-06?13:48??Refresh.sln

????..A..H.?????11264??2010-02-06?13:48??Refresh.suo

?????目錄??????????0??2010-02-06?13:47??MsdnExt

?????目錄??????????0??2010-02-06?13:46??MsdnExt\bin

?????目錄??????????0??2010-02-06?13:46??MsdnExt\bin\Debug

............此處省略15個文件信息

評論

共有 條評論