国产探花免费观看_亚洲丰满少妇自慰呻吟_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多一次應答。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 六盘水市| 黑水县| 阿拉善盟| 马公市| 申扎县| 洮南市| 通道| 宣武区| 福鼎市| 铁岭市| 马公市| 繁峙县| 新田县| 白银市| 婺源县| 翁源县| 和田县| 大厂| 建水县| 景洪市| 四平市| 丰原市| 达州市| 增城市| 伊金霍洛旗| 永川市| 会泽县| 通道| 探索| 麻城市| 莫力| 昂仁县| 屯门区| 淄博市| 马尔康县| 南江县| 新平| 法库县| 隆安县| 涿州市| 新干县|