对于datagrid中删除后,想要自动选中下一条记录,如果是最后一条,就选中上一条。
这个看似简单的需求,实际操作中却出现了问题。
当选中第一条,删除一条后,selectedIndex的值变成-1,然后对其赋值:
dg.selectedIndex=si;
从debug中看到,这里的si=0,但是dg的selectedIndex却是1,也就是flash内部对datagrid的selectedIndex的时候做了其他一些操作,时间关系也没细看源码,网上找了个方法就解决了这个问题,就是在对数据源remove的之前加入:
dp.disableAutoUpdate();
在remove并且对selectedIndex赋值完了后,再dp.enableAutoUpdate();
这样问题就解决了,但是我用debug看还是没能赋值成功。。
希望有经验的兄弟提醒提醒,在下感激不尽。
下面是解决后的代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" minWidth="955" minHeight="600" initialize="init();">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Alert;
[Bindable]
private var dp:ArrayCollection=new ArrayCollection();
private function init():void{
dp.addItem({id:1,name:"join"});
dp.addItem({id:2,name:"jason"});
dp.addItem({id:3,name:"lori"});
dp.addItem({id:4,name:"tony"});
dp.addItem({id:5,name:"randy"});
}
private function deleteColumn():void{
var si:int=dg.selectedIndex;
dp.disableAutoUpdate();
if(si==dp.length-1){
dp.removeItemAt(si);
dg.selectedIndex=si--;
dg.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
}else{
dp.removeItemAt(si);
dg.selectedIndex=si;
dg.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
}
dp.enableAutoUpdate();
}
]]>
</mx:Script>
<mx:DataGrid id="dg" dataProvider="{dp}">
<mx:columns>
<mx:DataGridColumn dataField="id" headerText="ID" />
<mx:DataGridColumn dataField="name" headerText="NAME" />
</mx:columns>
</mx:DataGrid>
<mx:Button label="del" click="deleteColumn()"/>
</mx:Application>
分享到:
相关推荐
本篇文章将详细探讨如何在Silverlight中利用ItemsSource属性给DataGrid赋值,以便有效地展示和管理数据。 首先,了解DataGrid的基本概念。DataGrid是Silverlight中的一个控件,它提供了一个网格布局,用于显示和...
在ASP.NET开发中,DataGrid控件是一种常用的用于展示数据的控件,它允许我们以表格形式呈现数据源中的信息。而"DataGrid中嵌套DataGrid"是一种复杂但非常实用的技术,它允许在一个DataGrid的行或列中内嵌另一个...
本文将详细介绍如何解决EasyUI Datagrid中的中文排序问题,并分别从前端和后端两个角度给出具体的实现方案。 #### 二、EasyUI Datagrid简介 EasyUI 是一个基于 jQuery 的简单而强大的 UI 库,它提供了大量的用户...
在Windows Presentation Foundation(WPF)开发中,DataGrid控件是一种强大的工具,用于展示和编辑表格数据。在某些场景下,我们可能需要在DataGrid的某一列中嵌入ComboBox控件,以提供用户多选或者下拉选择的功能。...
本话题将探讨如何在MVVM架构下,将ComBox控件集成到DataGrid列中,并实现其与数据模型的双向绑定,以实现在选择ComBox项后,数据能够即时更新到绑定的实体中。 首先,我们需要理解DataGrid的基本用法。DataGrid是...
本例子是wpf中datagrid的增加修改,对于datagrid中的canuseraddrows=true,对当前空白行进行的添加数据,修改时,鼠标离开焦点可自动更新数据库,删除等等。不需要多余的界面进行添加修改等,利用datagrid的属性,...
在这个场景中,"DataGrid 中加入图标"是一个重要的知识点,它涉及到如何在DataGrid的单元格或者行中添加图标,以增强数据的可视化效果。以下是对这个主题的详细解释。 首先,DataGrid通常用于展示结构化的数据,如...
在标题“easyui datagrid在编辑状态下更新列的值”中,我们关注的是如何在Datagrid的编辑模式下动态地修改列的值,以及确保在编辑结束后,保存的数据反映这些变更。以下将详细介绍这一过程。 首先,EasyUI的...
在Windows Presentation Foundation (WPF) 中,DataGrid控件是一个非常强大的数据展示工具,它可以用于显示和编辑结构化的数据。...希望这个教程对你在实际项目中使用WPF DataGrid展示图片有所帮助。
在Windows Presentation Foundation (WPF) 中,`DataGrid` 是一个强大的控件,常用于显示和操作表格数据。本篇文章将深入探讨如何实现`DataGrid`的多选、单选和反选功能,以提高用户界面的交互性。 首先,我们要...
标题中的“可删除列的datagrid”指的是在编程中,特别是在数据展示和操作的场景下,使用的一种组件或控件。Datagrid(数据网格)通常用于显示结构化的数据,如数据库表格,用户可以对其进行查看、编辑和操作。在这个...
修改上一个资源版本中结束编辑时combobox显示问题. 1、类型为combogrid时每行的参数不同查询返回对应的数据结果。 2、类型为combobox时,输入框显示图标按钮,实现对应的事件。 3、解决类型为combobox显示为value而...
VB6 DataGrid中的数据导出到Excel 本篇文章将详细介绍如何使用VB6将DataGridView中的数据导出到Excel文件中。下面将对标题、描述、标签和部分内容进行解释,并生成相关的知识点。 标题:VB6 DataGrid中的数据导出...
在WPF(Windows Presentation Foundation)开发中,DataGrid控件是一种常用的数据展示工具,它可以方便地展示和操作表格数据。本教程将详细讲解如何在DataGrid中实现单元格的合并,以及如何在模板列中嵌套另一个...
在.NET框架中,Windows Forms和WPF应用中经常使用DataGrid控件来展示和操作数据。这个场景下,用户可能需要实现一个常见的功能,即在DataGrid中添加CheckBox,允许用户进行多选操作,尤其是全选功能。这篇博客“在...
easyui datagrid中实现上下左右、回车切换单元格easyui datagrid中实现上下左右、回车切换单元格easyui datagrid中实现上下左右、回车切换单元格
在DataGrid的模板列中添加一个删除按钮,该按钮将触发`DataGrid_ItemCommand`事件。 3. **编写服务器端事件处理程序** 编写`DataGrid_ItemCreated`事件处理程序,用来设置删除按钮的`onclick`属性,使其在点击时...
### easyui的datagrid中editor和combobox的级联 在前端开发中,easyui是一个非常实用的库,它提供了一套完整的用户界面组件,能够帮助开发者快速构建出功能丰富的Web应用。其中,`datagrid`是easyui提供的一个重要...
在C# WPF环境中,DataGrid控件是一个非常强大的数据展示和编辑工具,它允许用户以表格形式查看和操作数据。在开发过程中,有时我们需要实现一个功能,即允许用户通过拖拽行来改变DataGrid中数据的显示顺序。这个功能...
对于需要动态编辑表格数据的应用场景,可以通过设置datagrid中的`editor`属性来实现单元格级别的编辑功能。 #### 二、combogrid组件介绍 在easyUI中,`combogrid`是一个结合了`combobox`和`grid`特性的组件,它...