方案一:用iframe的name属性定位
<input type="button" name="Button" value="Button"
onclick="document.frames('ifrmname').location.reload()">
或
<input type="button" name="Button" value="Button"
onclick="document.all.ifrmname.document.location.reload()">
方案二:用iframe的id属性定位
<input type="button" name="Button" value="Button"
onclick="ifrmid.window.location.reload()">
终极方案:当iframe的src为其它网站地址(跨域操作时)
<input type="button" name="Button" value="Button"
onclick="window.open(document.all.ifrmname.src,'ifrmname','')">
1、强制刷新:当你检查问代码逻辑没有问题的时候,你首先可以在赋值之后强制刷新渲染页面一下,这种时候一般都是多层嵌套或者多层遍历导致的,这种方法只能在当前页面内起作用,如果你是给子组件赋值,就不行。2、重新销毁创建:如果只改变了子组件的数据,但是子组件没有重新渲染,那么可以重新创建一下这个子组件,其实也就是v-if一下。
html+css+js网页设计listview调用notifyDataSetChanged()后不刷新界面
ytyese
原创
关注
2点赞·6330人阅读
listview的item数量有改变时调用notifyDataSetChanged()后不刷新界面
解决方法:
调用notifyDataSetChanged()后调用notifyDataSetInvalidated ()
public void notifyDataSetChanged ()与notifyDataSetInvalidated()的区别:
1) notifyDataSetChanged()
notifyDataSetChanged方法通过一个外部的方法控制如果适配器的内容改变时需要强制调用getView来刷新每个Item的内容。
该方法内部实现了在每个观察者上面调用onChanged事件。每当发现数据集有改变的情况,或者读取到数据的新状态时,就会调用此方法。
2) public void notifyDataSetInvalidated ()
该方法内部实现了在每个观察者上面调用onInvalidated事件。每当发现数据集监控有改变的情况,比如该数据集不再有效,就会调用此方法。
notifyDataSetInvalidated(),会重绘控件(还原到初始状态)
notifyDataSetChanged(),重绘当前可见区域