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();
}

我认为问题与列表有关,或者可能我没有得到值。

任何帮助都将不胜感激!

GridView_RowUpdating with a list C#,

这将是视图状态的问题。在页面加载事件中,您的列表只能被实例化一次。若您尝试更新行,则可能会放入空数据。签入调试程序EmplGridView_RowUpdating方法中的ListOne。如果它为空,则必须将数据添加到其他位置的ListOne中。例如,在databin rowupdateing方法之前,在IsPostBack块之外或在OnEveryLoad方法(或类似方法)中。