`

DataGrid单元格定位

阅读更多

       在Flex项目开发中,相信很多人会用到DataGrid,但是我个人感觉DataGrid控件相比Excel,在定位单元格上比较麻烦。因为在DataGrid控件中是以列DataGridColumn作为划分的,换句话也就是列优先,而其数据组织中的dataProvider属性一般是ArrayCollection,Array,Ilist,ListCollectionView,ICollectionView,XMLList作为数据源的,其中用的最多的就是ArrayCollection和Array,这样在定位获取单元格数据或者赋值单元格数据的时候可以结合dataProvider的行索引和DataGrid的DataColumns中的DataGridColumn列索引实现DataGrid的单元格定位了。但是前提是DataGrid的dataProvider属性是ArrayCollection或者Array类型,且不为。

    下文中是将一个集成自ArraCollection类型的对象的数据赋值到DataGrid中的某一行,其中代码中就涉及到了以上所讲的单元格定位:

		/** 将指定的DataGrid中的某一行数据赋值到指定的EconomicItems
		 *  @author 陈文锋  54cwf@163.com
		 *  @param dg:DataGrid--数据源DataGrid
		 *  @param eis:EconomicItems--数据目标EconomicItems
		 *  @param fromyear:int--EconomicItems中的起始年份
		 *  @param toyear:int--EconomicItems中的截止年份
		 *  @param fromColumn:int--要复制的DataGrid中起始列序号,默认值为0
		 *  @param rowindex:int--要复制的DataGrid的行序号,默认值为0
		 *  @return void
		 * */	
		public static function RowToEconomicItems(dg:DataGrid,eis:EconomicItems,fromyear:int,toyear:int,fromColumn:int=0,rowindex:int=0):void
		{   
			var columnname:String;
			if((fromyear<=toyear)&&(dg!=null)&&(eis!=null)&&(rowindex>0&&rowindex<dg.rowCount))
				for(var i:int=0;i<toyear-fromyear+1;i++)
				{   
					//循环获取行中所在列的列名,即dataField
					columnname=((dg.columns[i]) as DataGridColumn).dataField;
					//循环设置EconomicItems中每项的data属性为DG中dataprovider数据rowindex行的columnname值(似乎此处代码限制了DataGrid的dataprovider类型为ArrayCollection或者Array)
					if(dg.dataProvider is ArrayCollection)
					eis.getItemAt(i).data=((dg.dataProvider as ArrayCollection)[rowindex] as Object)[columnname];
					else 
					{
					if(dg.dataProvider is Array)
					eis.getItemAt(i).data=((dg.dataProvider as Array)[rowindex] as Object)[columnname];
					else
						return;
					}
				}
			else 
				return;
		}

 

0
0
分享到:
评论

相关推荐

    datagrid代码改变单元格宽度

    在本篇文章中,我们将深入探讨如何通过代码方式调整 datagrid 中单元格的宽度。这个问题源自一个具体的编程场景:用户希望动态地控制 datagrid 内各列的宽度,以实现更佳的数据展示效果或适应不同的界面布局需求。...

    easyui datagrid实现实现上下左右和回车切换单元格

    根据提供的文件信息,本文将详细解释如何在EasyUI DataGrid中实现上下左右及回车键切换单元格的功能。EasyUI 是一个基于 jQuery 的用户界面插件集合,它提供了丰富的 UI 组件来帮助开发者快速构建现代化的 Web 应用...

    easyui datagrid 增加鼠标悬停弹窗事件

    - **显示弹窗**:在弹窗中加载相关信息,如图片预览,然后将其定位到合适的位置。 - **处理`mouseout`事件**:当鼠标离开行时,隐藏弹窗,以保持界面整洁。 5. **代码示例**: 虽然具体的代码实现未提供,但大致...

    WPF分页DataGrid(二)列右键菜单实现

    在"WPF分页DataGrid"中介绍了如何实现分页功能,本文中介绍如果实现右键菜单。点击菜单项Age,将Age列隐藏,再点击则显示;并实现移动列后,同步显示。 详见:...

    Flex4 DataGrid控件行编辑项目

    在DataGrid中实现光标定位,可以监听键盘事件,根据用户的上下左右键输入来改变当前选中行或单元格。这可能需要对DataGrid的selectedItem或selectedIndex属性进行操作。 六、运行项目 提供的项目名为"DataGridTest...

    DataGrid控件用法详解

    在使用DataGrid控件时,可能会遇到数据同步问题、内存泄漏、空指针异常等问题,需要通过调试工具和日志记录来定位和解决。了解控件的内部工作原理,对可能出现的问题有预见性,是提高代码质量的关键。 总结,...

    DataGrid常用方法.doc

    - 前台JavaScript访问:通过`dataGrid1.rows(intRow).cells(intCol).innerText`或`innerHTML`可以获取或设置单元格内容。 - 后台访问:在服务器端,可以使用`DataGrid1.Items(intRowIndex).Cells(intColumnIndex)....

    DataGrid的加强版

    3. **样式与布局**:为了提升用户体验,加强版DataGrid会提供丰富的样式定制选项,允许用户自定义单元格样式、行高、颜色、边框等。同时,响应式设计确保了在不同设备和屏幕尺寸上都能良好显示。 4. **事件处理**:...

    VC++使用MsDataGrid示例代码

    `LeftView.cpp`和`MainFrm.cpp`可能展示了如何在主窗口中定位和布局`MsDataGrid`,以及如何处理用户的导航请求。 `MSDataGridView.cpp`可能包含了一些自定义功能的实现,比如自定义列类型、自定义绘制单元格,或者...

    表格单元格自定义ToolTip组件

    5. 应用到DataGrid:在DataGrid的列定义或单元格渲染器中,设置自定义ToolTip组件为指定的ToolTip。 在实际项目中,"自定义ToolTip"这个压缩包可能包含以下内容: 1. 源代码文件:自定义ToolTip组件的ActionScript...

    C# DataGridView单元格中动态添加多个控件

    6. **布局与定位**:在单元格内放置多个控件时,需要注意它们的布局和位置调整。可以使用`Control.Size`和`Control.Location`属性来设置控件大小和位置。 总之,通过以上步骤,我们可以实现在`C#`的`DataGridView`...

    wince下DataGrid中添加控件

    1. 创建控件类:首先,你需要创建一个自定义的DataGridCell类,继承自System.Windows.Forms.DataGridViewTextBoxCell,以便在单元格内添加CheckBox。 2. 覆盖Paint方法:在新类中,重写Paint方法,绘制CheckBox。...

    asp.net DataGrid所有的功能讲解实现.rar

    7. **datagrid变颜色**:根据数据条件改变行或单元格的颜色是一种增强可读性的方法。可以使用 AlternatingRowStyle 和.RowStyle属性,以及ItemDataBound事件来实现条件格式化。 8. **DataGrid模板列中TextBox的焦点...

    ASP.NET 中数据导航

    另外我还加入了如何在DataGrid单元格中加入控件的功能,好比ASP.NET做WEB程序时的模版列的功能,我加入的是combobox.真的这个程序对学习是很好的另外也拓展了我的思路。需要说明的是程序中用到SqlServer数据库,如果...

    easyui-datagrid可编辑可过滤的DEMO

    在EasyUI 1.5版本中,DataGrid的编辑功能通常包括单元格编辑、行编辑和弹出式编辑三种模式,可以根据实际需求选择合适的方式。 1. 单元格编辑:用户点击某个单元格时,该单元格变为可编辑状态,编辑完成后保存更改...

    ASP.NET-DataGrid

    **自定义模板列**:DataGrid的模板列允许开发者完全控制单元格的布局和内容。通过使用`TemplateColumn`,可以插入复杂的控件、HTML元素或自定义逻辑,以满足复杂的数据展示需求。 总结起来,ASP.NET DataGrid控件...

    easyui-edatagrid.js实现回车键结束编辑功能的实例

    首先检查当前是否处于编辑状态,如果是,则调用`editRow`方法开始编辑指定行,并将焦点定位到当前编辑的单元格。 2. **绑定键盘按键事件**: 在编辑模式下,我们监听所有具有`datagrid-editable .textbox, ....

    鼠标拖动改变左右单元格宽度.rar

    这通常是通过选择器如CSS类名定位到分隔线元素完成的。 2. **初始化状态**:在`mousedown`事件触发时,记录当前的鼠标位置和单元格的初始宽度,以便后续计算。 3. **处理鼠标移动**:`mousemove`事件会在用户拖动...

    Jquery-easyui的datagrid中文文档

    显示行号有助于用户定位具体行的位置,尤其是在进行数据编辑或参考时非常有用。 - **singleSelect**:布尔值,用于控制是否仅允许选择一行。默认为`false`,即默认情况下允许多选。在某些应用场景下,限制用户只能...

    在DataGrid控件中着色显示鼠标所在行

    DataGrid控件提供了多种事件,如MouseEnter、MouseLeave、CellMouseEnter、CellMouseLeave等,这些事件可以帮助我们在鼠标移动到特定单元格或行时触发相应的处理逻辑。此外,DataGrid控件的DefaultCellStyle属性允许...

Global site tag (gtag.js) - Google Analytics