大家都知道aspx在同一個頁面中傳值是很容易的(如textBox1.Text等)但有時必須向另一個頁面傳值用以前asp的方法的確覺得不怎么樣,還要用Request.Form等東西好象又回到了從前。我這里使用一個類的靜態屬性作為兩個類的外的全局變量實現了兩個頁面間傳值.舉一個簡單的例子如下:
首先定義一個包含靜態屬性的類: using System;
namespace study { /// <summary> /// CIndex 的摘要說明。 /// </summary> public class CIndex { public static string name=""; public CIndex() { } } }
然后在一個包含信息提交的頁面中這樣寫: <%@ Page language="c#" Codebehind="submit.aspx.cs" AutoEventWireup="false" Inherits="study.submit" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <HTML> <HEAD> <title>submit</title> <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0"> <meta name="CODE_LANGUAGE" Content="C#"> <meta name="vs_defaultClientScript" content="JavaScript"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> </HEAD> <body MS_POSITIONING="GridLayout"> <form runat="server" ID="Form1"> <asp:TextBox id="textBox1" runat="server" /> <asp:Button text="提交" runat="server" ID="Button1" /> </form> </body> </HTML>
Codebehind: 首先引入study命名空間 using study; 再加入Button1的Click事件 private void Button1_Click(object sender, System.EventArgs e) { CIndex.name=textBox1.Text;//將要傳到另一頁的值賦給類的靜態屬性 Response.Redirect("getsubmit.aspx"); }
然后在另一個頁面里面的codebehind里加入下面代碼: private void Page_Load(object sender, System.EventArgs e) { Response.Write("你輸入的參數值是: "+CIndex.name); }
這樣就完成了.簡單吧.
|