我試圖從一個特定的會話變量中讀取一個名爲'cart'的數據。但是,當我執行下面的方法時,輸出字符串如下System.Collections.Generic.List
1 [System.String]`,而我的願望目標是檢索產品ID數據值(會話'cart')。如何從會話變量中調用數據?
protected void AddToCart_Click(object sender, EventArgs e)
{
var selectedProducts = GridView1.Rows.Cast<GridViewRow>()
.Where(row => ((CheckBox)row.FindControl("SelectedProducts")).Checked)
.Select(row => GridView1.DataKeys[row.RowIndex].Value.ToString()).ToList();
if (Session["Cart"] == null)
{
Session["Cart"] = selectedProducts;
}
else
{
List<String> cart = new List<String>();
cart = (List<string>)Session["Cart"];
foreach (var product in selectedProducts)
cart.Add(product);
Session["Cart"] = cart;
}
foreach (GridViewRow row in GridView1.Rows)
{
CheckBox cb = (CheckBox)row.FindControl("SelectedProducts");
if (cb.Checked)
cb.Checked = true;
{
// string data = (string)Session["Cart"];
List<string> cart = (List<string>)Session["Cart"];
Label1.Text = cart.ToString();
}
}
}
任何進一步的建議,至於我哪裏可能會出錯,將不勝感激。
非常感謝。
由於String沒有「產品ID值」,因此您可能會錯誤地將「」列表存儲在'Session'中,但這是另一個問題。即'.Select(row => GridView1.DataKeys [row.RowIndex] .Value.ToString())。ToList()'不是你想要的。 –
2014-11-24 16:30:48