我有一个DataTable,它在我的课程开头就像这样声明:
private DataTable table = new TestData().FillTable();
在整个课程中,我可以访问表格的内容。
但是,我有一个GridView排序事件,它改变了DataTable的内容。在事件本身内,内容发生了变化,我通过调试确认了这一点。但是,如果我从这个方法之外的任何地方调用表,DataTable的内容仍然保持原样,即一旦soerting事件的范围结束,新值似乎被删除。
以下是我的排序事件的代码:
protected void TableGridView_Sorting(object sender, GridViewSortEventArgs e)
{
table.DefaultView.Sort = "GroupNumber, " + e.SortExpression + GetSortDirectio(e.SortExpression);
TableGridView.DataSource = table;
TableGridView.DataBind();
}
当我在上述事件中测试表的内容时,似乎添加了新值。但是,如果我从任何其他方法调用该表,则返回旧值。
我可以做些什么来使表的内容全局更新,即在我的类的开头声明的变量,并且根据方法不具有不同的状态?
答案 0 :(得分:1)
我已经使用GridView排序事件对此进行了测试。离开排序事件this.table包含排序值,因此它可以作为exptected使用。您确定要在单页请求中测试您的解决方案吗?在PostBack之后,this.table再次从TestData()。FillTable()中分配。