首页 新闻 搜索 专区 学院

向数据库新增1条记录,页面显示新增的数据和上一条数据相同。数据库是不同的

0
悬赏园豆:15 [已解决问题] 解决于 2021-04-23 09:06

各位大佬,江湖救急!!!!

我一个.cshtml的页面table。原先有一条数据,我通过模态框新增一条数据,保存到数据库,刷新列表,新增的数据显示却和第一条数据一样。(数据库里不一样)

这是什么原因???

Yimi依米的主页 Yimi依米 | 菜鸟二级 | 园豆:359
提问于:2021-04-22 11:38
< >
分享
最佳答案
0

可能是遇到经典的闭包问题,js 在进行for循环时 变量被捕获,实际上取值就成了最后一个。
你试试改改排序,看看是不是界面上两个就成了第二个。
尝试在浏览器控制台执行如下代码:
for(var i=1; i<=5; i++){
setTimeout(function timer(){
console.log( i );
}, i1000);
}
你会看到输出了5个6。
只需要略作修改:
for(var i=1; i<=5; i++){
let j=i;
setTimeout(function timer(){
console.log( j );
}, i
1000);
}
再次执行,就能看到你真正想要的结果

收获园豆:10
dongfo | 菜鸟二级 |园豆:239 | 2021-04-22 14:43

不太懂

Yimi依米 | 园豆:359 (菜鸟二级) | 2021-04-22 14:48

@Yimi依米: 如果你使用for循环显示列表,尝试在for 之后,定义一个变量承接一下遍历对象,然后再使用。

dongfo | 园豆:239 (菜鸟二级) | 2021-04-22 16:23

@dongfo: 已经解决啦,是返回数据之后的排序问题

Yimi依米 | 园豆:359 (菜鸟二级) | 2021-04-23 09:05
其他回答(5)
0

数据库里不一样,页面显示一样的话 可以看看是不是数据获取有问题,把获取的数据打印出来,要不就是 显示的问题,或者获取数据后你做了其他的操作?

收获园豆:1
人间春风意 | 园豆:534 (小虾三级) | 2021-04-22 11:54

并没有喔,返回页面之前数据是正常的

支持(0) 反对(0) Yimi依米 | 园豆:359 (菜鸟二级) | 2021-04-22 12:00
0

是不是没有重新加载table里面的数据啊?

收获园豆:1
华临天下 | 园豆:1433 (小虾三级) | 2021-04-22 11:58

重新加载了

支持(0) 反对(0) Yimi依米 | 园豆:359 (菜鸟二级) | 2021-04-22 12:01
0

设个断点跟踪一下代码

收获园豆:1
会长 | 园豆:9789 (大侠五级) | 2021-04-22 11:59
0

我之前一不注意也犯过这种错误
这个是页面用错了,比如你使用for循环添加的,比如:
for (var i = 0; i < list.length; i++) {
var name = list[i].name; //注意,这里如果是list[0].name,那么不管循环几次,数据都是第一个的数据
}

收获园豆:1
熊泽-学习中的苦与乐 | 园豆:1236 (小虾三级) | 2021-04-22 13:08

不是for循环

支持(0) 反对(0) Yimi依米 | 园豆:359 (菜鸟二级) | 2021-04-22 14:48
0

可能是列表插件的问题

收获园豆:1
戎"码"一生 | 园豆:559 (小虾三级) | 2021-04-22 16:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册