2010-10-08 37 views
2

我剛纔正在玩關於實體框架的教學。如何從實體對象數據源中檢索數據的子集並將其傳遞到另一頁

我有一個綁定使用實體框架實體日期來源GridView中的數據。如果我在列表中選擇某些項目,然後希望重定向另一個頁面並使用所選項目填充另一個gridview(但是具有更多細節,不同的包含/導航屬性)

這可能是最簡單的事情,但我有花2小時撞我的頭掛在牆上試圖得到這個工作。

基本上我有一個繼續按鈕,點擊它應確定該行的所有的UID(在GridView列),並讓我子集只是這些行,並將它們傳遞到另一個頁面重新綁定到另一個數據網格

任何想法?

回答

1

假設你沒有在你的GridView中使用DataKeys,這將是我的方法。

protected void Button1_Click(object sender, EventArgs e) 
    { 
     var checkedItems = new List<int>(); 

     foreach (GridViewRow row in GridView1.Rows) 
     { 
      var checkbox = (CheckBox)row.FindControl("CheckBox1"); 

      if (checkbox.Checked) 
      { 
       checkedItems.Add(int.Parse(row.Cells[1].Text)); 
      } 
     } 

     Session["checkedItems"] = checkedItems; 

     Response.Redirect("Page2.aspx"); 
    } 

第2頁

protected void Page_Load(object sender, EventArgs e) 
    { 
     var checkedItems = (List<int>)Session["checkedItems"]; 
     Session["checkedItems"] = null; 

     foreach (var checkedItem in checkedItems) 
     { 
      Response.Write(checkedItem); 
     } 
    } 

使用的ID在checkedItems列表,你現在可以從你DB查詢這些信息,最後的結果分配給你的GridView上第二頁。

而不是使用會話,您可以通過QueryString傳遞ID。

相關問題