C#中关于Gridview的数据更新问题.

来源:百度知道 编辑:UC知道 时间:2024/05/22 16:27:55
把Gridview与access通过datatable连接起来, 改变了要显示的内容以后,网页中的Gridview显示内容不变,要刷新网页才行.

问题: 怎样能在不刷新网页的情况下,改变了数据库数据,提交以后,就能出现新的已改变的数据呢?

具体的代码如下:
DataTable table1 = (DataTable)Session["Search_result"];
GridView1.DataSource = table1;
GridView1.DataBind();

每次提交新的搜索结果的时候,显示的都是上一次的搜索结果,需要刷新以后才会出现本次结果...

思考:是不是跟网页的缓存有关?

不知道的不要乱说,Session肯定不用,Refresh也不用,跟网页缓存也没关系,你的数据绑定事件没写对位置。
只在Page_load下if(!Ispostback)绑定是不对的,要把绑定事件写成方法,调用。
要想真的实现没刷新,建议用javascrip!

DataTable table1 = (DataTable)Session["Search_result"];
GridView1.DataSource = table1;
GridView1.DataBind();

你为什么不在搜索的动作下写这段代码?
或者调一下写这段代码的方法?

把DataTable存放在Session中,你服务器的内存够大啊,如果数据量一大,你的服务器就完了。呵呵。

一般的操作是:
1、点搜索提交
2、执行检索,得到结果
3、把结果绑定到GridView1

为什么要把DataTable存放在Session中呢?

我看不懂你的代码,但是我自己的一个更新代码很好用,具体如下:
OleDbDataAdapter oleDbDataAdapter1 = new OleDbDataAdapter("select * from 学生表", oleDbConnection1);
oleDbDataAdapter1.Fill(db1DataSet1, "学生表");
dataGrid1.SetDataBinding(db1DataSet1, "学生表");

再加一句代码
GridView1.Refresh();

好像有个Refresh方法