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

首頁 > 編程 > .NET > 正文

.net頁面間的參數傳遞簡單實例

2024-07-10 13:10:54
字體:
來源:轉載
供稿:網友
  • 本文來源于網頁設計愛好者web開發社區http://www.html.org.cn收集整理,歡迎訪問。
  •  

    使用querystring
    使用querysting在頁面間傳遞值已經是一種很老的機制了,這種方法的主要優點是實現起來非常簡單,然而它的缺點是傳遞的值是會顯示在瀏覽器的地址欄上的(不安全),同時又不能傳遞對象,但是在傳遞的值少而安全性要求不高的情況下,這個方法還是一個不錯的方案。使用這種方法的步驟如下:
    1,使用控件創建web表單(form)
    2,創建可以返回表單的按鈕和鏈接按鈕
    3,在按鈕或鏈接按鈕的單擊事件里創建一個保存url的字符變量
    4,在保存的url里添加querystring參數
    5,使用response.redirect重定向到上面保存的url
    下面的代碼片斷演示了如何實現這個方法:
    源頁面代碼:
    private void button1_click
    (object sender, system.eventargs e)
    {
    string url;
    url="anotherwebform.aspx?name=" + textbox1.text + "&email=" + textbox2.text;
    response.redirect(url);
    }
    目標頁面代碼:
    private void page_load
    (object sender, system.eventargs e)
    {
    label1.text=request.querystring["name"];
    label2.text=request.querystring["email"];
    }

    使用session變量
    使用session變量是可以在頁面間傳遞值的的另一種方式,在本例中我們把控件中的值存在session變量中,然后在另一個頁面中使用它,以不同頁面間實現值傳遞的目的。但是,需要注意的是在session變量存儲過多的數據會消耗比較多的服務器資源,在使用session時應該慎重,當然了,我們也應該使用一些清理動作來去除一些不需要的session來降低資源的無謂消耗。使用session變量傳遞值的一般步驟如下:
    1,在頁面里添加必要的控件
    2,創建可以返回表單的按鈕和鏈接按鈕
    3,在按鈕或鏈接按鈕的單擊事件里,把控件的值添加到session變量里
    4,使用response.redirect方法重定向到另一個頁面
    5,在另一個頁面提取session的值,在確定不需要使用該session時,要顯式清除它
    下面的代碼片斷演示了如何實現這個方法:
    源頁面代碼:
    private void button1_click
    (object sender, system.eventargs e)
    {
    //textbox1 and textbox2 are webform
    //controls
    session["name"]=textbox1.text;
    session["email"]=textbox2.text;
    server.transfer("anotherwebform.aspx");
    }
    目標頁面代碼:
    private void page_load
    (object sender, system.eventargs e)
    {
    label1.text=session["name"].tostring();
    label2.text=session["email"].tostring();
    session.remove("name");
    session.remove("email");
    }

    使用server.transfer
    這個方法相比上面介紹的方法稍微復雜一點,但在頁面間值傳遞中卻是特別有用的,使用該方法你可以在另一個頁面以對象屬性的方式來存取顯露的值,當然了,使用這種方法,你需要額外寫一些代碼以創建一些屬性以便可以在另一個頁面訪問它,但是,這個方式帶來的好處也是顯而易見的。總體來說,使用這種方法是簡潔的同時又是面向對象的。使用這種方法的整個過程如下:
    1,在頁面里添加必要的控件
    2,創建返回值的get屬性過程
    3,創建可以返回表單的按鈕和鏈接按鈕
    4,在按鈕單擊事件處理程序中調用server.transfer方法轉移到指定的頁面
    5,在第二個頁面中,我們就可以使用context.handler屬性來獲得前一個頁面實例對象的引用,通過它,就可以使用存取前一個頁面的控件的值了
    以下代碼綜合實現上述步驟過程的代碼:
    源頁面代碼:
    把以下的代碼添加到頁面中
    public string name
    {
    get
    {
    return textbox1.text;
    }
    }

    public string email
    {
    get
    {
    return textbox2.text;
    }
    }
    然后調用server.transfer方法
    private void button1_click
    (object sender, system.eventargs e)
    {
    server.transfer("anotherwebform.aspx");
    }
    目標頁面代碼:
    private void page_load
    (object sender, system.eventargs e)
    {
    //create instance of source web form
    webform1 wf1;
    //get reference to current handler instance
    wf1=(webform1)context.handler;
    label1.text=wf1.name;
    label2.text=wf1.email;
    }

    在asp.net 2.0中啟用了跨頁面傳送功能,其功能和用法在以后在做介紹!

     

    頁面之間傳遞值

    方式1:
       
    在接收頁 的html代碼里加上一行: <%@ reference page = "webform1.aspx" %>           
        
        webform1 fp=(webform1)context.handler;
        this.textbox1.text=fp.name;   //name 是第一頁的public變量


    context  提供對整個當前上下文(包括請求對象)的訪問。您可以使用此類共享頁之間的信息。

    方式2:get方式
        在發送頁
          public int sum=0;

               int i =int.parse(this.textbox1.text)*2;

               server.transfer("webform2.aspx?sum="+i);

        接收頁
            this.textbox1.text=request["sum"].tostring();
        or  this.textbox1.text=request.params["sum"].tostring();
            this.textbox1.text=request.querystring["sum"];


    方法3:全局變量

       發送頁:
           application["sum"]=this.textbox1.text;
           server.transfer("webform2.aspx");

       接收頁:
           this.textbox1.text=(string)application["sum"];

    application實質上是整個虛擬目錄中所有文件的集合,如果想在整個應用范圍內使用某個變量值,application對象將是最佳的選擇

    在這里用session[""]的方法雷同

    方法4:

     發送頁:
        1.定義靜態變量:  public static string str="";
        2. str=this.textbox1.text;
           server.transfer("webform2.aspx");
     接收頁:
        1.引入第一頁的命名空間:using webapplication1;
        2  this.textbox1.text=webform1.str;

    發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 云和县| 康平县| 资源县| 闽清县| 巴东县| 宁津县| 重庆市| 百色市| 扎兰屯市| 社旗县| 讷河市| 聂荣县| 城口县| 翁牛特旗| 黄石市| 临颍县| 长泰县| 黑山县| 宁南县| 红桥区| 垫江县| 融水| 怀宁县| 元氏县| 镇江市| 安岳县| 临清市| 进贤县| 大英县| 平昌县| 松潘县| 浪卡子县| 湘乡市| 井研县| 东阳市| 象山县| 璧山县| 玛沁县| 嘉峪关市| 承德市| 山西省|