我在我的页面中有一个GridView,但我没有通过GV添加我的行。添加直通文本框,然后将其显示到GV。现在的问题是,当我点击ADD按钮时,我的GV没有显示更新的行。如果我在我的菜单栏上点击那个页面,那么我的整个页面就会刷新,我可以看到我更新的GV。
下面是我的ADD_Click()事件的模拟: protected void btnAdd_Click(object sender, EventArgs e)
{
var td = from s in cv.Test1
join r in dt.Test2 on s.ID equals r.ID
where s.Col1 == ColumnName
select s;
gvShowComm.DataSource = td;
gvShowComm.DataBind();
}
catch (Exception err)
{
//Nothing!!!
}
}
else
{
MessageBox.Show("Please Enter Entry for the textboxes!");
}
}
现在当我添加记录时,GridView不显示更新的记录。谁能告诉我发生了什么事?
谢谢!
您应该验证的第一件事是您的td
对象具有您期望的正确的行数。GridView
应该正确地绑定到该对象,所以我的预感是你在td
的结果是缺失的行。
如何"添加"行?您是否先将其保存到DB,然后再运行linq调用?从上面的代码中,它看起来就像你调用了一些linq来获取结果,但没有显示你添加了任何会导致结果与初始加载不同的东西。
你添加的伪代码应该是这样的:
- 将新行保存到数据库
- 获取新数据
- 将新数据绑定到网格
您也可以通过获取旧数据来手动完成。在绑定之前手动添加一行到旧数据(在您的示例中存储在td
中),然后在您手动添加一行到linq结果后执行绑定。