GridView控件如何即时更新

我更新了GridView里面一条数据的某一个内容后,为什么我刷新页面还是显示的以前的内容,而我重新打开数据就更新了。。(数据库里面已经更新)如何能让GridView在我操... 我更新了GridView里面一条数据的某一个内容后,为什么我刷新页面还是显示的以前的内容,而我重新打开数据就更新了。。(数据库里面已经更新)
如何能让GridView在我操作删除或修改后即时更新? 高手指点一下。谢谢。。
能否说的详细一点,我是刚接触GridView新手。怎么重新绑定啊。。代码说明也行的。。谢谢了
展开
 我来答
超人影视娱乐
高粉答主

推荐于2016-10-18 · 闲来无事的影评人-关注我把
超人影视娱乐
采纳数:7757 获赞数:60596

向TA提问 私信TA
展开全部

更新需要两个条件,一是更新的内容是什么,二是更新哪一行数据,在这里,哪一行数据我们在删除的时候就已经确定下了,就是鼠标所点的那一行,而更新的内容却不知道,所以这里要先做这一步:回到设计页面,点击小三角,编辑列,在选定的字段中,把年龄,分数分别点击将此字段转换为TemplateField;;做完这一步,年龄与分数的文本框就出来了,分别为TextBox1和TextBox2;

这个时候当你点击更新时候,也会报错,提示GridView“GV”激发了未处理的事件“RowUpdating”;这时你就要到事件列表,找到RowUpdating事件,在其后面的表格中双击进入后台写出以下代码:

protected void GV_RowUpdating(object sender, GridViewUpdateEventArgs e)    
2    {    
3     int ab = Convert.ToInt32(GV.DataKeys[e.RowIndex].Value);    
4     string nl = ((TextBox)GV.Rows[e.RowIndex].FindControl("TextBox1")).Text;//把鼠标所点的那一行的文本框的值给取出来    
5     string fs = ((TextBox)GV.Rows[e.RowIndex].FindControl("TextBox2")).Text;    
6     SqlConnection cnn = new SqlConnection("Server=(local);uid=sa;pwd=0;database=学生");    
7     string SQL = "update xs set 年龄='"+nl+"',分数='"+fs+"' where id="+ab;    
8     SqlCommand cmd = new SqlCommand(SQL,cnn);    
9     cnn.Open();    
10     cmd.ExecuteNonQuery();    
11     cnn.Close();    
12    //这下面两句就是代表,当你点击更新以后,它就会回到初始状态,就相当于再点击更新的同时,又点了一次取消按钮;然后再重新加载一次。    
13     GV.EditIndex = -1;    
14     abc();    
15    }

至此更新按钮就写好了,不过还要说一点,可能当你每次点击按钮的时候,整个页面都会重新加载一下,所以为了防止此现象,我们要给个整个页面加上一个回调命令,代码如下:

1    protected void Page_Load(object sender, EventArgs e)    
2    {    
3     if (IsPostBack)//当触发回调(点击按钮或下拉菜单或其它事件)时则停止运行abc();    
4        return;    
5     abc();    
6    }
网易云信
2023-12-06 广告
UIkit是一套轻量级、模块化且易于使用的开源UI组件库,由YOOtheme团队开发。它提供了丰富的界面元素,包括按钮、表单、表格、对话框、滑块、下拉菜单、选项卡等等,适用于各种类型的网站和应用程序。UIkit还支持响应式设计,可以根据不同... 点击进入详情页
本回答由网易云信提供
如是我之闻
2015-08-08 · TA获得超过1237个赞
知道小有建树答主
回答量:1207
采纳率:57%
帮助的人:821万
展开全部
你这里所说的『即时更新』是很快的获取服务器端的信息吗?
如果是这个意思的话一般有两种方式:
1,拉模式。在客户端不断的发起请求。这种最常用的 『Commet』
2,推模式。即在服务器端推送到客户端。这种情况,需要客户端和服务器端保持一个长连接,具体实现方式可以用 Sockets,如果 Web 应用可以用 SSE。
获取到服务器端数据后,对 GridView 数据做一次绑定就可以了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
aino77
推荐于2017-12-15 · TA获得超过920个赞
知道小有建树答主
回答量:378
采纳率:0%
帮助的人:287万
展开全部
这种情况是一定会出现的.因为你没有重新为控件绑定更新后的数据.

所以,只要你做完更新后,重新给GridView绑定一下数据就会解决问题.

同理,插入和删除操作也一样.

//------------
GridView1.DataSource = 你的数据源;
GridView1.DataBind();
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hy_0825
2010-01-26 · 超过23用户采纳过TA的回答
知道答主
回答量:82
采纳率:0%
帮助的人:68.7万
展开全部
一般绑定GridView写三句就Ok了哈
void GetBind()
{
this.GridView1.DataSource = ds; // ds是数据源
this.GridView1.DataKeyNames = new string[]{"id"}; //主键字段
this.GridView1.DataBind(); //这句很重要
}

如果删除或修改的话
//…… 删除或修改代码
this.GetBind() //把上面那个方法放在这就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c870468ce9
2010-01-26 · 超过16用户采纳过TA的回答
知道答主
回答量:89
采纳率:0%
帮助的人:42.1万
展开全部
你删除成功之后加上 GridView1.DataBind();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式