中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > .NET > 临时文章
如何在.net里实现把独立FrameSet里的Forms参数传递给另一个FrameSet里的.aspx文件。
作者:未知 时间:2004-11-11 12:12 出处:Blog 责编:chinaitpower
              摘要:暂无


如何在.net里实现把独立FrameSet里的Forms参数传递给另一个FrameSet里的.aspx文件。


首先申明这个文章将要用到两个FramSet:

A FrameSet:Serach Forms
B FrameSet:DataList Forms


一般我们在.net开发的时候都是在同一个文件的来写代码的,也就是后代码方式,不过,在.net的开发过程中,由于为了方便界面查询,以及
整体的FrameSet效果有时候不幸将查询的Form写在了一个单独的.aspx文件里,查询的结果放在了另一个FrameSet里的.aspx文件里,
这个显示查询结果的的.aspx文件包含一个.ascx用户控件。


由于.net开发有别于传统的asp开发,如何在.net里实现把独立FrameSet里的Forms参数传递给另一个FrameSet里的.aspx文件。


在这里。我使用Page.Server.Transfer来实现

首先需要指定A FrameSet:Serach Forms的target=B Frame Name,可以编程的方式设置this.Forms.target=。。。


然后在B FrameSet:DataList Forms

注意我这里的这个B FrameSet:DataList Forms可以同时接受Get和Form访问的参数访问
但是请注意。由于在A FrameSet:Serach Forms里用到了Page.Server.Transfer

A FrameSet:Serach Forms 部分代码:

   string msgStatus=drpStatus.Items[drpStatus.SelectedIndex].Value;
   string tempURLParam="/B FrameSet/DataList Forms/Search.aspx?statusCode="+msgStatus;
   Page.Server.Transfer(tempURLParam);

 

所以在B FrameSet:DataList Forms里需要向下面这样来写,不然你接受不到Page.Server.Transfer(tempURLParam)过来的参数。
最重要的是当用Transfer过来时,你一定认为此时应该用Request.Form来接受表单参数,
那你就会发现。我永远也接受不到A Forms的值。
虽然通过跟踪,可以发现此时Request.ServerVariables["REQUEST_METHOD"]确实等于POST,但是你不能想到用Form方式来取A FrameSet:Serach Forms的值,是取不到的。

所以我们在Transfer(tempURLParam)里带上A Forms选择的参数。如下传递:
   string msgStatus=drpStatus.Items[drpStatus.SelectedIndex].Value;
   string tempURLParam="/B FrameSet/DataList Forms/Search.aspx?statusCode="+msgStatus;
   Page.Server.Transfer(tempURLParam);

这样就把A FrameSet:Serach Forms里的表单参数传递过去了,看看前面我门为什么在这里不用Request.Form而用Request.QueryString的原因

下面是B FrameSet:DataList Forms 接受A FrameSet:Serach Forms的部分代码:


    if(Request.ServerVariables["REQUEST_METHOD"].ToString().ToUpper()=="GET")
    {

     Response.Write("<Script>");
     Response.Write("alert('"+Request.ServerVariables["REQUEST_METHOD"].ToString()+"')");
     Response.Write("</Script>");


     if ( Request.QueryString["statusCode"] == null )
     {
      statusCode_Param = "All";
     }
     else
     {
      statusCode_Param = Request.QueryString["statusCode"].ToString();

     }

    }
    else
    {
     //注意必须写成querystring的形式
     if ( Request.QueryString["statusCode"] == null )
     {
      statusCode_Param = "All";
     }
     else
     {
      statusCode_Param = Request.QueryString["statusCode"].ToString();

     }


    }

    
   }

   //再传给另一个.ascx,我用的是ascx.
   mySearchSMS_Adv.MsgStatus = statusCode_Param;


完.

 

 

 

 

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有