aSP.NET 页面基类设计—防止2次提交和事件统一管理

<script src="http://wz.csdn.net/javascripts/vote.js" type="text/javascript"></script> aSP.NET 页面基类设计—防止2次提交和事件统一管理 

在ASP.NET的应用设计中,有一个好的画面基类很重要,它可以实现如:权限验证,Session管理,共通画面控制==。
现在介绍一下实现 画面 防止2次提交和事件统一管理

1:创建基础页面类

using  System;
using  System.Web.UI;
using  System.Web.UI.WebControls;

namespace  WeTest.framework.common
{
    
public class BasePage :Page
    
{
        
/// <summary>
        
/// 处理标记ID
        
/// </summary>

        protected const string SyoRiFlg_NM = "SyoRiFlg_234u19798701872348374534543";

        
/// <summary>
        
/// 处理函数
        
/// </summary>
        
/// <param name="pintActCmd">処理コマンド</param>

        protected virtual void Run_Gen_Act_Cmd(int pintActCmd)
        
{
        }


        
/// <summary>
        
/// 画面实行函数(2次提交验证)
        
/// </summary>
        
/// <param name="pintActCmd">処理コマンド</param>

        protected void Gen_Act_Cmd(int pintActCmd)
        
{
            
// 处理中验证
            if (!IsSyoRiFlg)
            
{
                
// 处理标记设置
                SetSyoRiFlg();
                
// 业务处理
                Run_Gen_Act_Cmd(pintActCmd);
                
// 处理标记清空
                ClearSyoRiFlg();
            }

        }


        
/// <summary>
        
/// 处理中标记
        
/// </summary>

        public bool IsSyoRiFlg
        
{
            
get
            
{
                
bool blnSyoRi_Flg = false;
                
if(Session[SyoRiFlg_NM] == null)
                
{
                    Session[SyoRiFlg_NM] 
= blnSyoRi_Flg;
                    
return blnSyoRi_Flg;
                }

                blnSyoRi_Flg 
= (bool)Session[SyoRiFlg_NM];
                
return blnSyoRi_Flg;
            }

        }


        
/// <summary>
        
/// 业务处理中标记设置
        
/// </summary>

        public void SetSyoRiFlg()
        
{
            
bool blnSyoRi_Flg = true;
            Session[SyoRiFlg_NM] 
= blnSyoRi_Flg;
        }


        
/// <summary>
        
/// 业务处理中标记清空
        
/// </summary>

        public void ClearSyoRiFlg()
        
{
            
bool blnSyoRi_Flg = false;
            Session[SyoRiFlg_NM] 
= blnSyoRi_Flg;
        }


    }


}

2:创建画面,继承上面的基类:

using  System;
using  System.Collections;
using  System.ComponentModel;
using  System.Data;
using  System.Drawing;
using  System.Web;
using  System.Web.SessionState;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.HtmlControls;

using  WeTest.framework.common;

namespace  WeTest
{
    
/// <summary>
    
/// testForm1 の概要の説明です。
    
/// </summary>

    public class testForm1 : BasePage
    
{
        
protected System.Web.UI.WebControls.Button testBtn1;
    
        
private const int ACTIVE_SEARCH = 1;

        
private void Page_Load(object sender, System.EventArgs e)
        
{
            
        }


        
override protected void OnInit(EventArgs e)
        
{
            InitializeComponent();
            
base.OnInit(e);
        }


        
private void InitializeComponent()
        
{    
            
this.testBtn1.Click += new System.EventHandler(this.testBtn1_Click);
            
this.Load += new System.EventHandler(this.Page_Load);
        }


        
private void testBtn1_Click(object sender, System.EventArgs e)
        
{
            Gen_Act_Cmd(ACTIVE_SEARCH);
        }

        
        
/// <summary>
        
/// 处理函数 
        
/// </summary>
        
/// <param name="pintActCmd">处理命令</param>

        protected override void Run_Gen_Act_Cmd(int pintActCmd)
        
{
            
try
            
{
                
switch(pintActCmd)
                
{
                    
case ACTIVE_SEARCH:
                    
{
                        
//To Do
                        break;
                    }

                }

            }

            
catch(Exception ex)
            
{
                
//Log
                Response.Write("<Script>window.alert('System Err' + "+ex.ToString()+")</Script>");
            }

        }



    }

}

这样就可以简单的实现了!!!
这里面还需要,共同日志处理,消息处理等!

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值