GridView_RowUpdating with a list C#,
本文关键字:list with RowUpdating GridView | 更新日期: 2023-09-27 18:20:14
我是asp/c#的新手,我正在尝试进行行更新,但我做不到。我不知道为什么它不起作用,但可能是因为它使用了列表而不是数据库(我不知道这是否是问题所在)这是我的代码:
页面加载
if (!IsPostBack)
{
ListOne = new List<Empl>();
ListOne.Add(new Empl("0000", "Name", "lastname"));
ViewState["Listado"] = ListOne;
}
else
{
ListOne = ((List<Empl>)(ViewState["Listado"]));
}
PersonasGridView.DataSource = ListOne;
PersonasGridView.DataBind();
这是行更新:
protected void EmplGridView_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
GridViewRow row = EmplGridView.Rows[e.RowIndex];
TextBox txtBox = (TextBox)(row.Cells[0].Controls[0]);
String str = txtBox.Text;
busqResult.Text = str;//I just put this to know if I'm getting a value, but it is empty
PersonasGridView.EditIndex = -1;
PersonasGridView.DataSource = ListOne;
PersonasGridView.DataBind();
}
我认为问题与列表有关,或者可能我没有得到值。
任何帮助都将不胜感激!
这将是视图状态的问题。在页面加载事件中,您的列表只能被实例化一次。若您尝试更新行,则可能会放入空数据。签入调试程序EmplGridView_RowUpdating方法中的ListOne。如果它为空,则必须将数据添加到其他位置的ListOne中。例如,在databin rowupdateing方法之前,在IsPostBack块之外或在OnEveryLoad方法(或类似方法)中。