当前位置:Gxlcms > PHP教程 > paip.PHP-asp—jsp实现事件机制WEBFORM式开发_PHP教程

paip.PHP-asp—jsp实现事件机制WEBFORM式开发_PHP教程

时间:2021-07-01 10:21:17 帮助过:11人阅读

paip.PHP-asp—jsp实现事件机制 WEBFORM式开发

前言... 1

CODE Behind代码分离... 1

页面控件... 1

实现一个窗体... 2

实现状态VIEWSTATE保存... 2

Page_Ini事件与Page_Load事件... 3

实现button1_click事件... 4

实现button2_click事件... 4

附注: webform.CodeFile.php源码... 5

前言
我们都知道asp.net是以WEBFORM式开发的,易于理解,基于事件机制..开发效率比起MVC方式要大大的快..

PHP,ASP,JSP也是可以以WEBFORM开发的.,这里我们以PHP为例子说明如何进行WEBFORM式开发..

CODE Behind代码分离
如需要实现代码分离,除了MVC以外,还可以使用Code-Behind技术来实现,更加简单,开发效率比MVC要快得多..并且容易实现模块化,组件化

在我里我们实现两个页面,一个放界面HTML代码,,起名为webform.php,一个放代码,命名为webform.CodeFile.php

要实现CODE Behind,在webform.php 第一行加入以下代码:

页面控件
在ASP。NET中,我们是用RUNAT=“SERVER”,来表明一个HTML控件可以在服务端引用..在PHP中,需要使用变通的方式来实现

LABEL控件:

Textbox控件:

实现一个窗体
在这里我们需要一个LABLE,一个TEXTBOX控件,两个按钮控件..

我们的要求是当点击第1个按钮时,将LABLE与TEXTBOX值都设为button1 click…

当点击第二个按钮时,将LABLE值设为 TEXTBOX中的输入值

总代码如下

实现状态VIEWSTATE保存
在CODE Behind文件中,webform.CodeFile.php.. 我们写代码来实现前台界面控件状态保存。。当界面提交后返回时控件值都在..

//保持控件状态,viewstate管理

viewstate();

//__VIEWSTATE

function viewstate()

{

foreach ($_REQUEST as $color){

$key=key($_REQUEST);

$controlName=$key."_Text";

// echo ($key."---".$color."
");

global $$controlName;

$$controlName =$color;

next($_REQUEST);

}

}

Page_Ini事件与Page_Load事件
当我们第一次访问此窗体时,触发Page_Ini事件,..每次访问此页面时,则总会触发Page_Load事件..

//页面事件注册

eventReg4Page();

function Page_Ini()

{

echo "page ini event ";

global $Label1_Text;

$Label1_Text=" Page_Ini click";

global $TextBox1_Text;

$TextBox1_Text=" Page_Ini click";

}

function Page_Load()

{

echo "page load event ";

}

实现button1_click事件

//控件事件注册

eventReg("Button1",Button1_Click);

//按钮控件Button1的点击事件

function Button1_Click()

{

global $TextBox1_Text;

$TextBox1_Text=" button1 click";

global $Label1_Text;

$Label1_Text=" button1 click";

}

//事件注册

function eventReg($controlName,$controlEvent)

{

if($_POST[$controlName])

$controlEvent();

}

实现button2_click事件
//按钮控件Button2的点击事件

function Button2_Click()

{

global $TextBox1_Text;

// $TextBox1_Text=" button2 click";

global $Label1_Text;

$Label1_Text=$TextBox1_Text;

}

附注: webform.CodeFile.php源码

//保持控件状态,viewstate管理

viewstate();

//控件事件注册

eventReg("Button1",Button1_Click);

eventReg("Button2",Button2_Click);

//页面事件注册

eventReg4Page();

function Page_Ini()

{

echo "page ini event ";

global $Label1_Text;

$Label1_Text=" Page_Ini click";

global $TextBox1_Text;

$TextBox1_Text=" Page_Ini click";

}

function Page_Load()

{

echo "page load event ";

}

//按钮控件Button1的点击事件

function Button1_Click()

{

global $TextBox1_Text;

$TextBox1_Text=" button1 click";

global $Label1_Text;

$Label1_Text=" button1 click";

}

//按钮控件Button2的点击事件

function Button2_Click()

{

global $TextBox1_Text;

// $TextBox1_Text=" button2 click";

global $Label1_Text;

$Label1_Text=$TextBox1_Text;

}

//-----------------以下函数可以做为公共函数,包含进来-------------------

//事件注册

function eventReg($controlName,$controlEvent)

{

if($_POST[$controlName])

$controlEvent();

}

//页面事件注册

function eventReg4Page()

{

if(!$_POST)

{

if(function_exists("Page_Ini"))

call_user_func("Page_Ini");

}

//注册Page_Load事件

if(function_exists("Page_load"))

call_user_func("Page_load");

}

//__VIEWSTATE

function viewstate()

{

foreach ($_REQUEST as $color){

$key=key($_REQUEST);

$controlName=$key."_Text";

// echo ($key."---".$color."
");

global $$controlName;

$$controlName =$color;

next($_REQUEST);

}

}

?>

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/477976.htmlTechArticlepaip.PHP-aspjsp实现事件机制 WEBFORM式开发 前言... 1 CODE Behind代码分离... 1 页面控件... 1 实现一个窗体... 2 实现状态VIEWSTATE保存... 2 Page_Ini事件与...

人气教程排行