国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

解析6種ASP.NET跨頁面傳值的方法_.Net教程

2024-07-10 12:51:57
字體:
來源:轉載
供稿:網友

推薦:解決asp.net訪問IIS元數據庫失敗的方法
調試Asp.net程序時,出現了“訪問IIS元數據庫失敗”的錯誤信息,解決方法如下: 1、依次點擊“開始”-“運行”。 2、在“運行”欄內輸入 C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_regiis.exe-i(不含引號),然后點“確定”按鈕。 3、出現的

1.  使用QueryString變量 
QueryString是一種非常簡單的傳值方式,他可以將傳送的值顯示在瀏覽器的地址欄中。如果是傳遞一個或多個安全性要求不高或是結構簡單的數值時,可以使用這個方法。但是對于傳遞數組或對象的話,就不能用這個方法了。下面是一個例子: 
a.aspx的C#代碼 
private void Button1_Click(object sender, System.EventArgs e) 

    string s_url; 
    s_url = "b.aspx?name=" + Label1.Text; 
    Response.Redirect(s_url); 


b.aspx中C#代碼 
private void Page_Load(object sender, EventArgs e) 

    Label2.Text = Request.QueryString["name"]; 


2.  使用Application 對象變量 
Application對象的作用范圍是整個全局,也就是說對所有用戶都有效。其常用的方法用Lock和UnLock。 

a.aspx的C#代碼 
private void Button1_Click(object sender, System.EventArgs e) 

    Application["name"] = Label1.Text; 
    Server.Transfer("b.aspx"); 


b.aspx中C#代碼 
private void Page_Load(object sender, EventArgs e) 

    string name; 
    Application.Lock(); 
    name = Application["name"].ToString(); 
    Application.UnLock(); 


3.  使用Session變量 
想必這個肯定是大家使用中最常見的用法了,其操作與Application類似,作用于用戶個人,所以,過量的存儲會導致服務器內存資源的耗盡。 
a.aspx的C#代碼 
private void Button1_Click(object sender, System.EventArgs e) 

    Session["name"] = Label.Text; 


b.aspx中C#代碼 
private void Page_Load(object sender, EventArgs e) 

    string name; 
    name = Session["name"].ToString(); 


4.  使用Cookie對象變量 
這個也是大家常使用的方法,與Session一樣,其是什對每一個用戶而言的,但是有個本質的區別,即Cookie是存放在客戶端的,而session是存放在服務器端的。而且Cookie的使用要配合ASP.NET內置對象Request來使用。 

a.aspx的C#代碼 
private void Button1_Click(object sender, System.EventArgs e) 

    HttpCookie cookie_name = new HttpCookie("name"); 
    cookie_name.Value = Label1.Text; 
    Reponse.AppendCookie(cookie_name); 
    Server.Transfer("b.aspx"); 


b.aspx中C#代碼 
private void Page_Load(object sender, EventArgs e) 

    string name; 
    name = Request.Cookie["name"].Value.ToString(); 


5.  使用Server.Transfer方法 
這個才可以說是面象對象開發所使用的方法,其使用Server.Transfer方法把流程從當前頁面引導到另一個頁面中,新的頁面使用前一個頁面的應答流,所以這個方法是完全面象對象的,簡潔有效。 

a.aspx的C#代碼 
public string Name 

    get{ return Label1.Text;} 

private void Button1_Click(object sender, System.EventArgs e) 

    Server.Transfer("b.aspx"); 


b.aspx中C#代碼 
private void Page_Load(object sender, EventArgs e) 

    a newWeb;  //實例a窗體 
    newWeb = (source)Context.Handler; 
    string name; 
    name = newWeb.Name; 


6.Cross-Page Posting 
定位至于源網頁位于相同的應用程序的網頁,可以讀取源網頁的值和公共屬性,但是不要按瀏覽器中的重新整理和上一步,這樣會照成無法預期的效果 
eg: 
aspx 
  <div> 
        您的名字: <asp:TextBox ID="name" runat="server"> </asp:TextBox> 
        <asp:Button ID="btn_name" runat="server" PostBackUrl="~/Cross-Page Posting/CrossPageTarget.aspx" 
            Text="傳送" OnClick="btn_name_Click" />  
    </div> 
cs: 
TextBox name = (TextBox)PreviousPage.FindControl("name");//非public 成員 
        Label1.Text = "歡迎你:" + name.Text; 
previouspage本身屬于page類,并且只有在來源網頁和目標網頁屬于同一個asp.net應用程序下的時候才能引用,如果網頁不是跨網頁公布的目標,或者是網頁在不同的應用程序之中,就不會初始化previouspage屬性,就不能使用previouspage來存取任何信息 
獲得網頁的公共屬性: 
source.cs: 
public string UserName 
{  
    get{return aa.text;} 


cross-page posting.aspx: 
<%@ PreviousPageType VirtualPath="~/Cross-Page Posting/Source.aspx"%> 
cross-page posting.cs: 
lab.text = previousopage.username; 
//一個網頁中只能指示一個previousPage,不然出出現編譯錯誤 

分享:解析GridView中嵌套DropDownList的實現
效果圖: 后臺代碼: usingSystem; usingSystem.Data; usingSystem.Configuration; usingSystem.Collections; usingSystem.Web; usingSystem.Web.Security; usingSystem.Web.UI; usingSystem.Web.UI.WebControls; usingSystem.Web.UI.WebControls.WebParts; u

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 抚州市| 屏边| 北票市| 衡阳县| 房山区| 宁海县| 甘德县| 勃利县| 苏尼特右旗| 宜阳县| 石柱| 砀山县| 漳浦县| 资溪县| 辽宁省| 锡林郭勒盟| 扎囊县| 县级市| 蒙自县| 汝阳县| 搜索| 永州市| 龙门县| 哈巴河县| 永安市| 栖霞市| 瑞金市| 合川市| 郴州市| 那坡县| 昔阳县| 建瓯市| 南充市| 永城市| 德令哈市| SHOW| 金堂县| 大关县| 新疆| 友谊县| 册亨县|