问题标签 [virtualmode]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 处于虚拟模式时如何枚举 ListView?
当 ListView 处于虚拟模式时如何枚举它?
我正在使用OfType<>()
方法来枚举列表视图项。但是它会抛出一个异常,例如列表视图在虚拟模式下无法枚举。
这是我的代码
那么,当它处于虚拟模式时,我如何从 ListView 中获取项目?
请给我一个使用 .OfType<> 的方法
提前致谢
c# - 如何找出当前在屏幕上的 DataGridView 行?
在我的 C# (2010) 应用程序中,我有一个虚拟模式下的 DataGridView,它可以容纳数千行。是否可以找出当前屏幕上的单元格?
c# - 如何判断某人何时从 CollectionBase 读取项目
我不确定这是否可以使用 CollectionBase 类。我想知道何时有人访问 CollectionBase 类中的项目。
最终目标是创建一个“VirtualMode”(类似于 DataGridView 控件),允许我在用户获取数据之前检查和验证数据。
所以会发生什么,他们可以创建一个包含 20 个对象的集合,在内部我们修改 IList 以包含 20 个空对象,然后当他们尝试读取一个项目时,如果它为空,我们转到外部数据源并读取它在那个时候。然后我们用读取的类替换现有的空对象,下次他们尝试访问它时,他们会得到缓存的版本。
打出来之后。我想知道 OnValidate 是否是这样做的正确位置。
任何帮助将不胜感激。
特雷弗·沃森
c# - DataGridView、虚拟模式和“滞后”
我的代码如下所示:
ArrayOfRecords
string[]
每秒更新 10-100 个新对象。VirtualMode
设置为真。SelectionMode
设置为FullRowSelect
。dataGridView
是只读的。
现在还有一个ProgressBar
withMarquee
样式,它告诉我说 5000+ 行滚动冻结,Form
但我想这只是线程/后台工作人员等的问题。
最让我害怕的是选择。拥有8000 行并单击最后一行 (8000) 需要我的表单 4.2 秒来选择它。它如下:
4000 行使其需要 2.1 秒等。如果选择第 8000 行最小化,然后最大化需要 4.2 秒。选择第 1 行“使它”再次快乐。这是不可接受的。*为什么为我的“标记”第 8000 行这么难Form
?
VirtualMode 的分页效果很好,但选择很痛苦。
还有另一个问题/行为:
为什么CellValueNeeded
当我将鼠标移到行上时会引发事件?他们已经画好了?那么为什么会浪费资源呢?
这个选择问题有什么解决方案吗?或者我必须限制数据网格中的最大记录
listview - 什么时候应该为虚拟 ListView 调用 AutoResizeColumns?
我正在设置一个虚拟ListView
的详细信息模式,我希望它的列自动调整大小,以免截断当前可见项目的文本。
调用AutoResizeColumns
效果很好(至少看起来确实如此,因为文档不清楚这个函数在虚拟模式下会发生什么);同样,双击列标题也可以正常工作。
但是,我不知道何时调用该AutoResizeColumns
方法:在RetrieveVirtualItem
事件处理程序的末尾不起作用,因为调用AutoResizeColumns
也会触发Refresh
ListView 的 a。
你能给我一些指点吗?
c# - ListView OwnerDraw 的默认实现
我有一个ListView,我希望在其中调整项目的绘制(例如突出显示列表视图项目中的某些字符串),但是我不想从根本上改变项目的显示方式。
我已将OwnerDraw设置为 true,并且可以了解如何绘制突出显示效果,但是每当我尝试遵循默认实现来绘制列表视图项目的其余部分时,事情就会出错,我只剩下一个整体大量图形问题表明实际上我完全出错了。
有没有什么地方我可以看到DrawItem
和DrawSubItem
事件的“默认”处理程序做了什么,以便我可以更好地理解并更轻松地调整我的代码?
作为参考,这里有一个片段显示我目前正在做的事情:
winforms - 当我对虚拟模式下的 ListView 的基础列表进行排序时,如何对选择进行排序?
当 aListView
处于虚拟模式时,您负责在它通过事件询问时提供与 index 对应的ListView
a 。ListItem
n
OnRetrieveItem
我根据自己的规则对列表进行排序,并告诉列表视图重新绘制:
这很好,花花公子。
除非用户选择了某些项目。现在,当树重新绘制时,会选择不同的项目。
排序的技术SelectedIndices
是什么?
但是,如果我对自己的个人列表进行排序
c# - 在VirtualMode中Winforms DataGridView何时调用AutoResizeColumn?
我已经DataGridView
在我的表格上实施了 a 并成功实施VirtualMode
。这将从本地缓存中检索单元格数据,并且在填充网格/分页等时一切似乎都正常工作。我处理DataGridView.CellValueNeeded
事件以填充单元格。
在 DataGridView 上,我将AutoSizeColumnsMode
属性设置为DataGridViewAutoSizeColumnsMode.DisplayedCells
. 我注意到在使用 VirtualMode 时,DataGridView 在填充单元格后似乎不尊重 AutoSizeColumnsMode。我已经检查了这篇文章,但没有找到解决方案。
我最终想做的是不依赖该AutoSizeColumnsMode
属性,而是在某处.AutoResizeColumn()
调用该方法来调整大小,所以我最初自动调整列的大小,然后允许用户调整大小。
我尝试了以下方法,但效果有限或没有成功:
设置
DataGridView.AutoSizeColumnsMode
为.None
。然后在我的.CellValueNeeded
处理程序中这抛出一个
StackOverFlowException
大概是因为它反复加注.CellValueNeeded
。.CellFormatting
除了在事件处理程序中尝试完全相同的事情。得到相同的StackOverFlowException
。尝试有无
DataGridView.SuspendLayout/ResumeLayout
:这给出了所有空白单元格,所以没有用。
这个实际上有点工作,原因我不明白:
它正确调整了列的大小,但是必须在所需的每个单元格值上重复调用它似乎很奇怪。另外,我不能立即将其设置为 .None ,否则它会
StackOverFlowException
再次设置。因此,我不能允许用户调整列的大小。.UpdateCellValue()
如文章中所述,从我的处理程序中调用也会.CellValueNeeded
引发StackOverFlowException
。
那么是否有可能在它溢出之前.AutoResizeColumn()
不会引发的地方调用?.CellValueNeeded
由于#4 似乎能够执行自动调整大小功能,因此我似乎也可以从某个地方手动调用它。
asp.net - ASP.net 的虚拟列表视图?
ASP.net 有虚拟列表视图吗?
我为 asp.net 找到的大多数表(和网格、列表视图、数据表、数据网格、网格视图、列表网格)都希望用户对数据进行分页。
我想要一个包含例如 10,000 个项目的列表视图;我不想要 10 页。
1994 年,使用“虚拟”模式下的列表视图解决了长列表的问题。控件只需要给出要显示的项目数。根据需要(即当用户将它们滚动到视图中或尝试对列进行排序时)有关这些项目的控制信息。
有没有人创建了一个虚拟列表视图(大概使用异步 Javascript 和 XML,或同步 Javascript 和 XML)?
如果答案是“否”:不要害怕回答问题。答案没有错:
不。
xml-parsing - Issue Changing Simple Text on header.tpl using VQMOD in OpenCart
I am trying to use VQMOD for the first time and when I added the code below to my page nothing changed.
I tried to change the home
link on top right of home page (open cart) to my home
, but the text did not change. Unfortunately, there was no error on the VQMOD manager.
My XML code is Below. Do I need to add something to my TPL or make any other changes?