GridView控件如何即时更新
我更新了GridView里面一条数据的某一个内容后,为什么我刷新页面还是显示的以前的内容,而我重新打开数据就更新了。。(数据库里面已经更新)如何能让GridView在我操...
我更新了GridView里面一条数据的某一个内容后,为什么我刷新页面还是显示的以前的内容,而我重新打开数据就更新了。。(数据库里面已经更新)
如何能让GridView在我操作删除或修改后即时更新? 高手指点一下。谢谢。。
能否说的详细一点,我是刚接触GridView新手。怎么重新绑定啊。。代码说明也行的。。谢谢了 展开
如何能让GridView在我操作删除或修改后即时更新? 高手指点一下。谢谢。。
能否说的详细一点,我是刚接触GridView新手。怎么重新绑定啊。。代码说明也行的。。谢谢了 展开
9个回答
展开全部
更新需要两个条件,一是更新的内容是什么,二是更新哪一行数据,在这里,哪一行数据我们在删除的时候就已经确定下了,就是鼠标所点的那一行,而更新的内容却不知道,所以这里要先做这一步:回到设计页面,点击小三角,编辑列,在选定的字段中,把年龄,分数分别点击将此字段转换为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 }
展开全部
你这里所说的『即时更新』是很快的获取服务器端的信息吗?
如果是这个意思的话一般有两种方式:
1,拉模式。在客户端不断的发起请求。这种最常用的 『Commet』
2,推模式。即在服务器端推送到客户端。这种情况,需要客户端和服务器端保持一个长连接,具体实现方式可以用 Sockets,如果 Web 应用可以用 SSE。
获取到服务器端数据后,对 GridView 数据做一次绑定就可以了!
如果是这个意思的话一般有两种方式:
1,拉模式。在客户端不断的发起请求。这种最常用的 『Commet』
2,推模式。即在服务器端推送到客户端。这种情况,需要客户端和服务器端保持一个长连接,具体实现方式可以用 Sockets,如果 Web 应用可以用 SSE。
获取到服务器端数据后,对 GridView 数据做一次绑定就可以了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这种情况是一定会出现的.因为你没有重新为控件绑定更新后的数据.
所以,只要你做完更新后,重新给GridView绑定一下数据就会解决问题.
同理,插入和删除操作也一样.
//------------
GridView1.DataSource = 你的数据源;
GridView1.DataBind();
所以,只要你做完更新后,重新给GridView绑定一下数据就会解决问题.
同理,插入和删除操作也一样.
//------------
GridView1.DataSource = 你的数据源;
GridView1.DataBind();
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般绑定GridView写三句就Ok了哈
void GetBind()
{
this.GridView1.DataSource = ds; // ds是数据源
this.GridView1.DataKeyNames = new string[]{"id"}; //主键字段
this.GridView1.DataBind(); //这句很重要
}
如果删除或修改的话
//…… 删除或修改代码
this.GetBind() //把上面那个方法放在这就行了
void GetBind()
{
this.GridView1.DataSource = ds; // ds是数据源
this.GridView1.DataKeyNames = new string[]{"id"}; //主键字段
this.GridView1.DataBind(); //这句很重要
}
如果删除或修改的话
//…… 删除或修改代码
this.GetBind() //把上面那个方法放在这就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你删除成功之后加上 GridView1.DataBind();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询