0

我在 ASP.NET 中有一个非常简单的问题,我已经以不同的形式遇到过,但我从未找到答案。

问题是我想做一些计算来响应回发事件(例如OnClick按钮事件),然后我想GridViewDataObjectSource.

问题是页面生命周期想要DataObjectSource在执行OnClick事件之前填充 , 。我明白为什么这个顺序一般来说是有意义的,但我不知道如何更改我的代码以使其正常工作。根据我是否初始化结果变量,我要么得到一个空指针异常,要么只是一个空表。

这里是代码的一些相关部分:

Page_Load() 
{
    GridView1.Visible = IsPostBack;
}

DataTable result;

Btn_Click()
{
    // do some calculations
    result = ...;
}

GetData()
{
    return result;
}

如前所述,表GetData()Btn_Click()空的(甚至null在这里)。

4

1 回答 1

1

使用GridView.DataBind()方法:

Page_Load() {
    GridView1.Visible = IsPostBack;
}

DataTable result;

Btn_Click() {
    // do some calculations
    result = ...;

    // calculations finished... bind the gridview
    GridView1.DataBind();
}

GetData() {
    return result;
}

计算完成后,这会将 GridView 重新绑定到数据源对象。

于 2013-11-12T12:32:34.913 回答