各位好,现在用GRIDVIEW进行画面编辑,然后通过HIBERNATE更新到数据库中.当数据修改更新到数据库后,然后在进行一次GridView.DataBind();但是在GridView上却没有看到更新的值,而是需要再做一遍检索,才能在GridView看到更新的数据.
即使连续进行两次
GridView.DataBind();
GridView.DataBind();
还是没有能看到更新的数据.
请问该如何处理?

解决方案 »

  1.   

    代码其实就是简单的绑定,但是HIBERNATE使用了关联,就是用了MANY-TO-ONE,在GRIDVIEW中表示了关联表中的一些内容,比如主表A中有CODE_A,关联表B中有NAME_A,现在就是更该了CODE_A,但是从新检索绑定后,GRIDVIEW中却没有更改后的CODE_A和NAME_A,而需要从新刷新页面,数据才能表示出来. 
    请问这是何解?
      

  2.   

    你可以使用一个ObjectDataSource控件为GridView提供数据源,将你的 HIBERNATE 隐藏域ObjectDatasource 后边,将你的GridView.DataBind() 这类代码删除(数据源控件会处理好控制流程,不用你手写)。
      

  3.   

    问题已经解决! 
    问题出在HIBERNATE这边,当做UPDATE或者INSERT时,需要进行刷新处理: 
    updateEntity = base.Update(updateEntity); 
    NHibernateSession.Refresh(updateEntity); 
    return updateEntity; 或者 
    insertEntity = base.Save(insertEntity); 
    NHibernateSession.Refresh(insertEntity); 
    return insertEntity; 都是因为对HIBERNATE的不了解啊! 
    问题解决,就此结贴...