使用列表C#进行GridView_RowUpdating,

时间:2015-11-01 04:58:31

标签: c# asp.net gridview

我在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();

这就是rowupdating:

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

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

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

这会使您的视图状态出现问题。您的listone只能在pageload事件中使用一次。如果您尝试更新行,则可能会放置空数据。在EmplGridView_RowUpdating方法中检入调试器什么是ListOne,如果它是空的,则必须将数据添加到其他位置的listone。例如,在数据绑定rowupdating方法之前,在IsPostBack块之外或OnEveryLoad方法(或类似的东西)。