我有一些代码如下所示,它将a的值写入gridview列表,如图所示.代码确实获得了正确的值,但是当网格的第二行添加到列表时,它会覆盖列表的第一行.
谁知道为什么会这样?
C#代码
List<Item> lstNewItems = new List<Item>(); // Control Items
lstNewItems.Clear();
Item NewItem = new Item();
foreach (GridViewRow PendingItemUnderControl in GridViewPendingList.Rows)
{
NewItem.Paramater = PendingItemUnderControl.Cells[0].Text.ToLower();
NewItem.Type = (String)Session["BrowseType"];
lstNewItems.Add(NewItem);
}
Run Code Online (Sandbox Code Playgroud)
您正在创建一个Item类实例.它发生在你的循环之前,所以实际上你正在处理同一个对象.您需要在循环内创建新实例(在每次迭代中):
List<Item> lstNewItems = new List<Item>(); // Control Items
lstNewItems.Clear();
foreach (GridViewRow PendingItemUnderControl in GridViewPendingList.Rows)
{
Item NewItem = new Item();
NewItem.Paramater = PendingItemUnderControl.Cells[0].Text.ToLower();
NewItem.Type = (String)Session["BrowseType"];
lstNewItems.Add(NewItem);
}
Run Code Online (Sandbox Code Playgroud)