我在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();
}
我认为问题与列表有关,或者我可能没有得到这些值。
任何帮助将不胜感激!
答案 0 :(得分:0)
这会使您的视图状态出现问题。您的listone只能在pageload事件中使用一次。如果您尝试更新行,则可能会放置空数据。在EmplGridView_RowUpdating方法中检入调试器什么是ListOne,如果它是空的,则必须将数据添加到其他位置的listone。例如,在数据绑定rowupdating方法之前,在IsPostBack块之外或OnEveryLoad方法(或类似的东西)。