2015-09-25 18 views
0

下面是這是寫在我們所希望的頁面的代碼..如何在GridView控件發送選定行的值設置到下頁..,

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (this.Page.PreviousPage != null) 
    { 
     int rowIndex = int.Parse(Request.QueryString["RowIndex"]); 
     GridView GridView1 = (GridView)this.Page.PreviousPage.FindControl("gv1"); 
     GridViewRow row; 
     row = GridView1.Rows[rowIndex]; 
     lblid.Text = row.Cells[1].Text; 
     lblname.Text = (row.FindControl("lblName") as Label).Text; 
     lblmt.Text = row.Cells[3].Text; 
     lblyer.Text = row.Cells[4].Text; 
    } 
} 
+1

的可能重複(http://stackoverflow.com/questions/ [如何在整個會議的ASP.net insted的頁面傳遞值] 14956027 /如何傳遞值 - 跨頁面在asp-net-ins-of-session) – fubo

+0

把你通過它來代碼的代碼。理想情況下,你應該從gridview本身發送值。 –

回答

1

您有幾種選擇,可以考慮

  1. 會話狀態
  2. 查詢字符串

會話狀態

如果你打算在頁面之間發送數據,你可以考慮使用Session State

當用戶在Web應用程序中導航ASP.NET頁面時,ASP.NET會話狀態使您能夠存儲和檢索 用戶的值。 HTTP是無狀態協議的 。這意味着Web服務器將每個HTTP 請求作爲獨立請求處理。服務器沒有保留以前請求期間使用的變量值的知識 。 ASP.NET會話狀態在一個有限的時間窗口內將來自同一瀏覽器的請求標識爲一個會話,並提供一種方法在該會話期間持續保存 變量值。默認情況下,所有ASP.NET應用程序都啓用ASP.NET 會話狀態。最棒的是,它 很容易!在(例如在default1.aspx)

將數據

Session["ID"] = lblid.Text; 
Session["Name"] = lblname.Text; 
Session["Amt"] = lblmt.Text; 
Session["Year"] = lblyer.Text; 

把它弄出來(例如在default2.aspx)

string Id= Session["ID"] 
string Name= Session["Name"] 
string Amout = Session["Amt"] 
string year = Session["Year"] 

查詢字符串

如果您發送少量數據(例如id = 4),則使用查詢字符串vari可能更實用ABLES。

您應該探索使用查詢字符串變量,例如

http://www.domain.com?param1=data1&param2=data2 

然後,您可以獲取數據出像

string param1 = Request.QueryString["param2"]; // value will be data1 
string param2 = Request.QueryString["param2"]; // value will be data2 

您可以使用類似How do you test your Request.QueryString[] variables?獲取數據。

如果您想了解更多關於查詢字符串變量檢查了他們的wikipedia article

相關問題