在selectedIndexChanged之后,Gridview行信息消失

时间:2009-07-13 14:16:42

标签: asp.net gridview detailsview master-detail

我在UpdatePanels中都有一个使用GridView和DetailsView的主/详细设置。在编辑和更新DetailsView时,我希望这些更改能够反映在GridView中,但不需要重新绑定该数据(这可能会改变selectedItem的排序顺序以及它导致的其他问题)在DetailsView ItemUpdated上我有以下内容:

    ' Update Gridview '
    ProductsGridView.Rows(selectedIndex).Cells(1).Text = e.NewValues("ProductName")
    ProductsGridView.Rows(selectedIndex).Cells(2).Text = e.NewValues("Category")

这在更新时工作正常,但是当在Gridview中选择新项目时,更新的文本会消失。为什么这样,我怎么能保留这些信息?当它反弹时,如果它改变位置就好了,直到它重新绑定我希望这些数据能够持续存在。感谢。

1 个答案:

答案 0 :(得分:1)

答案:这是因为单元格的文本没有存储在viewstate中。我添加了Literal控件来保存单元格的文本并相应地更新了文本的文本而不是使用单元格的文本,如下所示:

        ' Update Gridview '
    CType(ProductsGridView.Rows(selectedIndex).FindControl("thisLit"), Literal).Text = e.NewValues("SomeValue")
    CType(ProductsGridView.Rows(selectedIndex).FindControl("someOtherLit"), Literal).Text = e.NewValues("OtherValue"))

现在信息保存在视图状态并完美运行=)