c# listview或datagridview显示动态添加的数据,效果是局部(刷新)添加数据,添加新数据同时对操作原显示数据无影响

问题描述

c#listview或datagridview显示动态添加的数据,效果是局部(刷新)添加数据,添加新数据同时对操作原显示数据无影响

解决方案

解决方案二:
你说的添加新数据是重新绑定,还是在原基础上增加行?
解决方案三:
引用1楼dongxinxi的回复:

你说的添加新数据是重新绑定,还是在原基础上增加行?

增加行例如:listview展示如下:1abc2def3ghi一段时间数据库有新数据1abc2def3ghi4jkl5mnp
解决方案四:
无非就是比较两条数据是非“一样”嘛傻瓜式的实现,可以在表中加一个timestamp类型的version字段,表示这条纪录的版本,你可以给grid增加一个隐藏列来保存它只要执行过update,这个字段就会发生变化,程序里只需要判断主键相同的两条数据的version是否相同,相同就不用更新了灵活一点就自定义判断逻辑,假定你的数据源是List<TModel>,classTModel:IEqualityComparer<TModel>{publicboolEquals(TModelnew,TModelold){判定相同逻辑}//字典等与HASH算法相关的publicintGetHashCode(TModelobj){return(上面方法比较的字段的组合).GetHashCode();})

假设新数据为List<TModel>data;直接更新源:dgv.DataSource=data.Except(dgv.DataSourceasIEnumerable<TModel>).ToList();但是这样是一次更新,不是局部刷新,你可以借助vards=newBindingList(List<TModel>);foreach(varitemindata){if(!ds.Contains(item)){ds.Add(item);}}

这里的Contains决定于BindingList构造函数集合类型的实现,也就是List<T>.Contains()方法内部又是根据IEqualityComparer<TModel>也就是上面你自己的实现
解决方案五:
用这2个方法试试,都可以listView1.Items.Contains();listView1.Items.ContainsKey("");

时间: 2025-01-03 08:12:50

c# listview或datagridview显示动态添加的数据,效果是局部(刷新)添加数据,添加新数据同时对操作原显示数据无影响的相关文章

添加删除-el表达式实现局部刷新

问题描述 el表达式实现局部刷新 两张图片切换的时候,点击可以获取一段数据,我想再点击的时候删除这行数据,请问用EL表达式怎么实现 解决方案 用Iframe实现局部刷新 解决方案二: el表达式怎么能实现呢?el表达式是为了让jsp页面的数据访问更简单的,不能完成你所说的功能需求的. 局部刷新用jQuery实现,在js代码块中完成.

揭秘在ListView等AdapterView上动态添加删除项的陷阱_Android

如何避开在ListView等AdapterView上动态添加删除项的陷阱,下面就为大家分享,具体内容如下 首先,定义如下array资源,作为列表的加载内容: <resources> <string name="app_name">MyListView</string> <string-array name="language"> <item>Java</item> <item>C&l

net-IE不显示动态添加表格行

问题描述 IE不显示动态添加表格行 document.getElementById("tb1").innerHTML = document.getElementById("tb1").innerHTML + array[0]; document.getElementById("tb2").innerHTML = document.getElementById("tb2").innerHTML + array[1]; docum

如何在静态Html里面显示动态内容

摘要: 将自己的网页生成静态Html以后,虽然速度和SEO都有了很大的提升,但随之而来的问题也来了,有些内容需要在静态Html里面动态显示,比如点击的次数,每点击一次,点击数就添加1次, 将自己的网页生成静态Html以后,虽然速度和SEO都有了很大的提升,但随之而来的问题也来了,有些内容需要在静态Html里面动态显示,比如点击的次数,每点击一次,点击数就添加1次,显然这在纯静态页面里面没有办法实现,因为点击的次数是保存在数据库里面的,而纯静态Html跟数据库又没有什么关系. PHP跟ASP都是一

ITOO---MVC3.0动态添加表格的行数并Controller中获取添加数据

MVC3.0动态添加表格的行数并Controller中获取添加数据            最近由于项目的中的相关需求,需要在MVC的视图中动态的添加添加数据的行数,并将前台输入的多行数据在Controller中获得传回服务端.本文将介绍如何从MVC的View端动态添加数据行数并将输入的数据在Controller中获得.            问题分析          一.设计前台显示页面(View).            视图中样式 @*添加上课班信息窗口*@ <div id="Add

[WPF疑难]在WPF中显示动态GIF

在我们寻求帮助的时候,最不愿意听到的答复是:很抱歉,在当前版本的产品中还没有实现该功能... 在WPF中显示动态的GIF图像时便遇到了这样的问题,WPF中强大的Image控件却不支持动态的GIF(其只能显示第一帧).当然,我们可以说WPF强大的动画能力,让我们完全有理由抛弃传统的GIF动画,但如某种情况下如果你觉得使用动态的GIF更合适的话(比如QQ表情,因为GIF是利于保存和传输的),没关系,本篇随笔将帮助你解决这个问题. 1,曾有过的尝试: 我们在实际开发过程中也遇到显示动态GIF的问题.发

小小菜鸟请教jsp页面动态添加多行input,输入完成后,添加到后台action

问题描述 小小菜鸟请教jsp页面动态添加多行input,输入完成后,添加到后台action 姓名 年龄 这三行input是使用jquery动态添加的,现在就是想实现jsp页面三行一起,提交数据到action,保存到数据库中.现在就是想请教各位大神,jsp怎么保存数据,action中怎么具体实现......实在是疯了.使用的struts2+spring+hibernate框架, 解决方案 你看看把input标签的name改成name[],后台获取这个数组我php项目是这么获取的,后台接受name[

js显示动态时间的方法详解_javascript技巧

本文实例讲述了js显示动态时间的方法.分享给大家供大家参考,具体如下: Date对象的方法 Date 对象能够使你获得相对于国际标准时间(格林威治标准时间,现在被称为 UTC-Universal Coordinated Time)或者是 Flash 播放器正运行的操作系统的时间和日期.要使用Date对象的方法,你就必须先创建一个Date对象的实体(Instance). Date 对象必须使用 Flash 5 或以后版本的播放器. Date 对象的方法并不是静态的,但是在使用时却可以应用于所指定的

wxpython显示动态数字-wxpython 显示动态数字的问题

问题描述 wxpython 显示动态数字的问题 我在做一个linux监控的小程序,server端可以获取远程 cpu 内存等信息,并每秒钟通过socket把这些数据以字典的形式发给客户端,当server端监听到client链接后就开始主动发数据,客户端这边我想用 wxpython作一个界面把不断接收到的动态数字显示出来,我应该用什么方法. 当mainloop()函数执行后面板才能显示出来,这时候我怎么往面板上传数据呢?我用socket接收到的数据怎么和面板结合呢? 客户端开始运行应该是运行显示界