我想將List<StockInList>
綁定到GridView
,將它們展示給用戶,並讓它們返回(也許用戶將編輯它們)以執行其他操作。但是,當我檢索綁定項目stockInLists
時,它是null
。我猜的原因是ASP創建了一個新的代碼隱藏類Add_Inventories
來處理請求,所以我失去了訪問我的綁定項目stockInLists
。ASP Web窗體:我應該在哪裏放置綁定的項目?
我做錯了什麼?我該怎麼做才能讓他們恢復正常?
public partial class Add_Inventories : System.Web.UI.Page
{
private ShoppingDbContext shoppingDbContext = new ShoppingDbContext();
private List<StockInList> stockInLists;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
var stockInListsFromSession =(List<StockInList>)Session["stock_in_list"];
if (stockInListsFromSession != null)
{
//save the stockInLists in private filed, so that I can get them back, however it's null when method `Add()` invoke.
stockInLists=new List<StockInList>(stockInListsFromSession);
GridView1.DataSource = stockInLists;
GridView1.DataBind();
}
else
{
//...
}
}
}
protected async void Add(object sender, EventArgs e)
{
foreach (var stockInList in stockInLists)
{
shoppingDbContext.StockInLists.Add(stockInList);
}
await shoppingDbContext.SaveChangesAsync();
Response.Redirect(Request.Url.AbsoluteUri);
}
}
Perrhaps當'IsPostBack'爲true時,將調用Add方法,而當IsPostBack爲false時,您只填充'stockInLists'字段。調試器是你的朋友。 – Joe