ASP.NET中的多重表单[转]

作者: Sanjay Kumar 2006-6-5

译者: SPARON 2006-6-7

 

这篇文章将教我们怎么使用ASP.NET中的多重表单

URL:

http://www.c-sharpcorner.com/UploadFile/avi_sanjay/MultiForms.htm06042006062957AM/MultiForms.htm.aspx

 ASP.NET依赖SFI(Single Form Interface:单接口)而不是MFI(Multi Form Interface:多重接口),因为SFI在ASP.NET通常状态下是一个元素. 因此,如果你有两个或两个以上的Form表单的话,在你提交的时候会出现”一个页面只能有一个表单”的错误,在ASP.NET中表单是由HtmlForm派生的,这个类不提供常见的行为属性,也不支持事物属性.

当页面提交时,页面对象被处理并呈递第一个服务器端运行的Form,同时将其内置的flag标志写入日志,页面中其它的服务器端运行的Form将会被抛出一个HttpException异常。

不过你可以插入多个没有"runat =server"属性的Form标记.示范代码如下:

1.     如何在你的ASPX文件中插入多个Form并且提交到另一页面.

2.     如何在提交页面检索从Form控件传来的值.

 



[Main.aspx]:
在这个页面里有两个Form表单,一个是服务器端运行的表单,它传递的数据直接提交到本页面,另外一个表单是普通的HTML表单,它没有'runat=server'属性,它会将表单内的数据传递到另一个页面。嵌入该表单内的HTML控件需指定唯一地名称。

ExpandedBlockStart.gif ContractedBlock.gif <% dot.gif @ Page language="c#" Codebehind="Main.aspx.cs" AutoEventWireup="false" Inherits="MultipleForm.Main"  %>
None.gif
None.gif
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"  >
None.gif
None.gif
< HTML >
None.gif
None.gif      
< HEAD >
None.gif
None.gif            
< title > Main </ title >
None.gif
None.gif            
< meta  content ="Microsoft Visual Studio .NET 7.1"  name ="GENERATOR" >
None.gif
None.gif            
< meta  content ="C#"  name ="CODE_LANGUAGE" >
None.gif
None.gif            
< meta  content ="JavaScript"  name ="vs_defaultClientScript" >
None.gif
None.gif            
< meta  content ="http://schemas.microsoft.com/intellisense/ie5"  name ="vs_targetSchema" >
None.gif
None.gif            
< link  type ="text/css"  href ="MyStyle.css"  rel ="stylesheet" >
None.gif
None.gif      
</ HEAD >
None.gif
None.gif      
< body  MS_POSITIONING ="GridLayout" >
None.gif
None.gif            
< form  id ="frmMain"  method ="post"  runat ="server" >
None.gif
None.gif                  
< table  cellSpacing ="0"  cellPadding ="0"  width ="95%"  border ="0" >
None.gif
None.gif                        
< caption  class ="tblCaption" > Post data to same page [ Main.aspx ] </ caption >
None.gif
None.gif                        
< tr  class ="rowStyle" >
None.gif
None.gif                              
< td  width ="25%" > First Name </ td >
None.gif
None.gif                              
< td  width ="25%" >< input  class ="inputformat"  type ="text"  id ="txtFName"  runat ="server"  NAME ="txtFName" ></ td >
None.gif
None.gif                              
< td  width ="25%" > Last Name </ td >
None.gif
None.gif                              
< td  width ="25%" >< input  class ="inputformat"  type ="text"  id ="txtLName"  runat ="server"  NAME ="txtLName" ></ td >
None.gif
None.gif                        
</ tr >
None.gif
None.gif                        
< tr  class ="rowStyle" >
None.gif
None.gif                              
< td ></ td >
None.gif
None.gif                              
< td  colspan ="2"  align ="center" >< asp:Button  CssClass ="buttonStyle"  id ="btnSubmit"  runat ="server"  Text ="Post to Main" ></ asp:Button ></ td >
None.gif
None.gif                              
< td ></ td >
None.gif
None.gif                        
</ tr >
None.gif
None.gif                  
</ table >
None.gif
None.gif            
</ form >
None.gif
None.gif            
< br >
None.gif
None.gif            
<!-- ---- 
None.gif
None.gif                  此处是HTML表单,它将提交到另一个页面处理表单中的数据
None.gif
None.gif            //--------
-->
None.gif
None.gif 
None.gif
None.gif            
< form  action ="A1.aspx"  method ="post" >
None.gif
None.gif                  
< table  cellSpacing ="0"  cellPadding ="0"  width ="95%"  border ="0" >
None.gif
None.gif                        
< caption  class ="tblCaption" > Post data to another page [ A1.aspx ] </ caption >
None.gif
None.gif                        
< tr  class ="rowStyle" >
None.gif
None.gif                              
< td  width ="25%" > First Name </ td >
None.gif
None.gif                              
< td  width ="25%" >< input  class ="inputformat"  type ="text"  name ="fname" ></ td >
None.gif
None.gif                              
< td  width ="25%" > Last Name </ td >
None.gif
None.gif                              
< td  width ="25%" >< input  class ="inputformat"  type ="text"  name ="lname" ></ td >
None.gif
None.gif                        
</ tr >
None.gif
None.gif                        
< tr  class ="rowStyle" >
None.gif
None.gif                             
< td ></ td >
None.gif
None.gif                              
< td  colspan ="2"  align ="center" >< input  class ="buttonStyle"  type ="submit"  value ="Post to A1" ></ td >
None.gif
None.gif                              
< td ></ td >
None.gif
None.gif                        
</ tr >
None.gif
None.gif                  
</ table >
None.gif
None.gif            
</ form >
None.gif
None.gif      
</ body >
None.gif
None.gif
</ HTML >
None.gif
None.gif

[Main.aspx.cs]

None.gif Using System;
None.gif
None.gif
using  System.Collections;
None.gif
None.gif
using  System.ComponentModel;
None.gif
None.gif
using  System.Data;
None.gif
None.gif
using  System.Drawing;
None.gif
None.gif
using  System.Web;
None.gif
None.gif
using  System.Web.SessionState;
None.gif
None.gif
using  System.Web.UI;
None.gif
None.gif
using  System.Web.UI.WebControls;
None.gif
None.gif
using  System.Web.UI.HtmlControls; 
None.gif
None.gif 
None.gif
None.gif
namespace  MultipleForm
None.gif
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif
/**//// <summary>
InBlock.gif
InBlock.gif
/// Summary description for Main.
InBlock.gif
ExpandedSubBlockEnd.gif
/// </summary>

InBlock.gif
InBlock.gif
public class Main : System.Web.UI.Page
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gif
InBlock.gif
protected System.Web.UI.WebControls.Button btnSubmit;
InBlock.gif
InBlock.gif
protected System.Web.UI.HtmlControls.HtmlInputText txtFName;
InBlock.gif
InBlock.gif
protected System.Web.UI.HtmlControls.HtmlInputText txtLName;
InBlock.gif
InBlock.gif
protected System.Web.UI.WebControls.TextBox txtfname;
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
InBlock.gif
private void Page_Load(object sender, System.EventArgs e)
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gif
InBlock.gif
// 获取数据并初始化
InBlock.gif

InBlock.gifResponse.Write(
"<font>First Name : " + txtFName.Value + "<br>");
InBlock.gif
InBlock.gifResponse.Write(
"Last Name   : " + txtLName.Value + "</font><br>");
InBlock.gif
ExpandedSubBlockEnd.gif}
 
InBlock.gif
InBlock.gif 
InBlock.gif
ContractedSubBlock.gifExpandedSubBlockStart.gif
Web Form Designer generated code#region Web Form Designer generated code
InBlock.gif
InBlock.gif
override protected void OnInit(EventArgs e)
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gif
InBlock.gifInitializeComponent();
InBlock.gif
InBlock.gif
base.OnInit(e);
InBlock.gif
ExpandedSubBlockEnd.gif}
            
InBlock.gif
InBlock.gif 
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif
/**//// <summary>
InBlock.gif
InBlock.gif
/// Required method for Designer support - do not modify
InBlock.gif
InBlock.gif
/// the contents of this method with the code editor.
InBlock.gif
ExpandedSubBlockEnd.gif
/// </summary>

InBlock.gif
InBlock.gif 
InBlock.gif
InBlock.gif
private void InitializeComponent()
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{    
InBlock.gif
InBlock.gif
this.Load += new System.EventHandler(this.Page_Load); 
InBlock.gif
InBlock.gif 
InBlock.gif
ExpandedSubBlockEnd.gif}

InBlock.gif
ExpandedSubBlockEnd.gif
#endregion

InBlock.gif
ExpandedSubBlockEnd.gif}

InBlock.gif
ExpandedBlockEnd.gif}

None.gif
None.gif

 

[A1.aspx.cs]

None.gif using  System;
None.gif
None.gif
using  System.Collections;
None.gif
None.gif
using  System.ComponentModel;
None.gif
None.gif
using  System.Data;
None.gif
None.gif
using  System.Drawing;
None.gif
None.gif
using  System.Web;
None.gif
None.gif
using  System.Web.SessionState;
None.gif
None.gif
using  System.Web.UI;
None.gif
None.gif
using  System.Web.UI.WebControls;
None.gif
None.gif
using  System.Web.UI.HtmlControls;
None.gif
None.gif
using  System.Collections.Specialized; 
None.gif
ExpandedBlockStart.gifContractedBlock.gif
/**/ /* The System.Collections.Specialized namespace has
InBlock.gif
InBlock.gif * NameValueCollection class which will be used to 
InBlock.gif
InBlock.gif * retrieve(检索) form fields data by defined name
InBlock.gif
InBlock.gif * 
InBlock.gif
InBlock.gif* 在命名空间System.Collections.Specialized下的
InBlock.gif
InBlock.gif* NameValueCollection类具有检索form表单字段功能
InBlock.gif
ExpandedBlockEnd.gif 
*/
 
None.gif
None.gif 
None.gif
None.gif
namespace  MultipleForm
None.gif
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif
/**//// <summary>
InBlock.gif
InBlock.gif
/// Summary description for A1.
InBlock.gif
ExpandedSubBlockEnd.gif
/// </summary>

InBlock.gif
InBlock.gif
public class A1 : System.Web.UI.Page
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gif
InBlock.gif
private void Page_Load(object sender, System.EventArgs e)
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gif
InBlock.gif
// Put user code to initialize the page here
InBlock.gif

InBlock.gifResponse.Write(
"<font>Data posted to A1.apsx page <br>");
InBlock.gif
InBlock.gif
// 定义一个 NameValueCollection 类的对象
InBlock.gif

InBlock.gifNameValueCollection userdata;
InBlock.gif
InBlock.gif
//将form请求赋给userdata对象
InBlock.gif
InBlock.gif
//此时userdata就具有所有Form对象的控件值了
InBlock.gif

InBlock.gifuserdata 
= Request.Form;
InBlock.gif
InBlock.gif
//现在我们就可以预览Form对象中的所有值了
InBlock.gif

InBlock.gifResponse.Write(
"First Name : " + userdata["fname"].ToString() + "<br>");
InBlock.gif
InBlock.gifResponse.Write(
"Last Name : " + userdata["lname"].ToString() + "</font><br>");
InBlock.gif
ExpandedSubBlockEnd.gif}
 
InBlock.gif
InBlock.gif 
InBlock.gif
ContractedSubBlock.gifExpandedSubBlockStart.gif
Web Form Designer generated code#region Web Form Designer generated code
InBlock.gif
InBlock.gif
override protected void OnInit(EventArgs e)
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gif
InBlock.gif
//
InBlock.gif
InBlock.gif
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
InBlock.gif
InBlock.gif
//
InBlock.gif

InBlock.gifInitializeComponent();
InBlock.gif
InBlock.gif
base.OnInit(e);
InBlock.gif
ExpandedSubBlockEnd.gif}
           
InBlock.gif
InBlock.gif 
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif
/**//// <summary>
InBlock.gif
InBlock.gif
/// Required method for Designer support - do not modify
InBlock.gif
InBlock.gif
/// the contents of this method with the code editor.
InBlock.gif
ExpandedSubBlockEnd.gif
/// </summary>

InBlock.gif
InBlock.gif 
InBlock.gif
InBlock.gif
private void InitializeComponent()
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{    
InBlock.gif
InBlock.gif
this.Load += new System.EventHandler(this.Page_Load);
InBlock.gif
ExpandedSubBlockEnd.gif}

InBlock.gif
InBlock.gif 
InBlock.gif
ExpandedSubBlockEnd.gif
#endregion

InBlock.gif
ExpandedSubBlockEnd.gif}

InBlock.gif
ExpandedBlockEnd.gif}

None.gif

转载于:https://www.cnblogs.com/ghx88/archive/2006/06/25/435471.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值