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

首頁 > 學院 > 開發設計 > 正文

1. Server.Transfer和Response.Redirect

2019-11-17 01:40:05
字體:
來源:轉載
供稿:網友

1. Server.Transfer和Response.Redirect

今天在使用ServerTransfer和Response.Redirect定位到當前頁面來實現刷新頁面時,發現了一些現象:

1.使用Response.Redirect刷新本頁面,造成當前頁面顯示的數據消失的情況:

   PRotected void Page_Load(object sender, EventArgs e)    {        if (!IsPostBack)        {            String Path;            string connString = "server=.;database=ComInfo;integrated security=true";            SqlConnection conn = new SqlConnection(connString);            conn.Open();            String PassUserid = Request.QueryString["C_Id"];//獲取上一頁面傳遞過來的字段值            String strsql = "select E_Id,E_Name,E_Sex,E_Position,E_Organisation,E_Phone,E_Address from Emp where C_Id ='" + PassUserid + " '";            SqlDataAdapter da = new SqlDataAdapter(strsql, conn);            DataSet ds = new DataSet();            da.Fill(ds);            GridView1.DataSource = ds;            GridView1.DataBind();            conn.Close();        }    }    

  A頁面,在GridView控件中加一列HypLinkField,其Text值為:詳細信息。設置DataNavigateUrlFormatString屬性為“~/B..aspx”?C_Id";DataNavigateUrlField屬性填寫要傳遞的字段名:C_Id。B頁面的.cs文件Load函數中寫下以上代碼。這樣,在A頁面點擊"詳細信息”就能跳轉到B頁面,在B頁面顯示Emp表中與C_Id相應的值詳細信息。

  

  

  這種情況下,使用Response.Redirect("B..aspx");刷新時,這些顯示的信息就會消失。而使用Server.Transfer則不會出現這種狀況。

2.使用Response.Redirect刷新本頁面不會造成顯示信息消失的情況:

    protected void Page_Load(object sender, EventArgs e)    {        if (!IsPostBack)        {            String strConn = "server=.;database=ComInfo;integrated security=true;";            String PassUserid = session["C_Id"].ToString();            SqlConnection conn = new SqlConnection(strConn);            conn.Open();            string strsql = "select E_Id,E_Name,E_Sex,E_Position,E_Organisation,E_Phone,E_Address from Emp where C_Id ='" + PassUserid + " '";            SqlDataAdapter da = new SqlDataAdapter(strsql, conn);            DataSet ds = new DataSet();            da.Fill(ds);            GridView1.DataSource = ds;            GridView1.DataBind();            conn.Close();        }    }

  這次頁面間傳值使用的方法是:Session,在A中用Session["C_Id"]=strId,記錄下C_Id的值,在B頁面中獲取。之后,不管用Response.Redirect還是server.transfer刷新頁面,都不會造成數據消失。

分析:第一種方法傳遞到B頁面的值,通過Response.redirect刷新后會釋放,導致查詢語句查找不到相應的信息。以后再用第一方法進行頁面間傳值時,要注意使用的跳轉語句,不要出現第一種狀況。

以下是Server.Transfer和Response.Redirect的對比

1. Server.Transfer只能夠轉跳到本地虛擬目錄指定的頁面,而Response.Redirect則十分靈活;2. Server.Transfer可以將頁面參數方便傳遞到指定頁面;3. Server.Transfer跳到別的頁面后,瀏覽器顯示的地址不會改變,因為重定向完全在服務器端進行,瀏覽器根本不知道服務器已經執行了一次頁面變換。4. Server.Transfer可以減少客戶端對服務器的請求;5.Server.Transfer方法把執行流程從當前的.aspx文件轉到同一服務器上的另一個.aspx頁面。調用Server.Transfer時,當前的.aspx頁面終止執行,執行流程轉入另一個.aspx頁面,但新的.aspx頁面仍使用前一.aspx頁面創建的應答流。 Response.Redirect則是客戶端第一次請求服務器返回狀態代碼302及新URL,客戶端再次請求新URL,服務器再返回新頁面,比Server.Transfer多一次應答。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 逊克县| 临澧县| 慈利县| 剑河县| 江孜县| 五华县| 昆明市| 治多县| 唐山市| 浠水县| 加查县| 乌兰县| 固始县| 安徽省| 漳州市| 获嘉县| 泾川县| 民权县| 手机| 定日县| 德惠市| 安多县| 长兴县| 沙雅县| 四子王旗| 日喀则市| 达拉特旗| 浏阳市| 稻城县| 夏河县| 无极县| 东乡族自治县| 东莞市| 江油市| 兴仁县| 黔西县| 临澧县| 屏山县| 高阳县| 微山县| 佛冈县|