单击DataGrid单元格编辑出现ComboBox,选择相应的值,要使数据写入数据库就要调用DataGrid的itemEditEnd事件,itemEditEnd事件是在离开编辑单元格后触发的.
itemEditEnd事件调用的方法
private function updatePro(event:DataGridEvent):void{
var dataField:String = event.dataField;//获取绑定字段的名称
var proId:String = mydate.selectedItem.proId;//获取id
if(dataField=="completePreStr"){
var newData:String = "";
try{
newData = ComboBox(event.currentTarget.itemEditorInstance).selectedLabel//获取编辑后的新值
}catch(errObject:Error){ }
//判断为null的情况,否则很容易出现TypeError: Error #1009: 无法访问空对象引用的属性或方法
if(newData!=null){
myProService.updateCompletePreStr(proId,newData);//调用更新方法
}
}
}
全部源码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" backgroundColor="white" creationComplete="init2();init();" height="1332" backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#FCFCFC, #040303]" xmlns:local="*" xmlns:ns1="com.esria.samples.dashboard.view.*">
<mx:Script>
<![CDATA[
import mx.controls.List;
import mx.collections.ArrayCollection;
import mx.events.CuePointEvent;
import mx.events.VideoEvent;
import mx.controls.Alert;
import mx.rpc.events.ResultEvent;
import mx.events.DataGridEvent;
[Bindable]
private var FLV_URL:String = "zhajm_126296095230hd.flv";
[Bindable]
private var userInfoList:ArrayCollection;
[Bindable]
private var userInfo:Object;
[Bindable]
public var cards:ArrayCollection;
/**
* Initialize the ArrayCollection object.
*/
private function init():void {
department.getDepartment();
}
private function init2():void {
myservice.getProInfo("","");
}
public function resultHandler(result:ResultEvent):void{
userInfoList = result.result as ArrayCollection;
userInfo = userInfoList.getItemAt(0);
//Alert.show(userInfo.userName);
}
private function changeHandler(event:Event):void {
myservice.getProInfo(departmentId.text,pageNum.text);
}
private function closeHandler(result:ResultEvent):void {
cards = result.result as ArrayCollection;
}
private function formatDate(item:Object,column:DataGridColumn):String{
if (item[column.dataField] == null) {
return "-";
}
return FD.format(item[column.dataField]);
}
private function formatPre(item:Object,column:DataGridColumn):String{
if (item[column.dataField] == null) {
return "-";
}
if (item[column.dataField] == 1) {
return "模型";
}
if (item[column.dataField] == 2) {
return "预演";
}
if (item[column.dataField] == 3) {
return "小样";
}
if (item[column.dataField] == 4) {
return "渲染";
}
if (item[column.dataField] == 5) {
return "后期";
}
return item[column.dataField];
}
private function updatePro(event:DataGridEvent):void{
var dataField:String = event.dataField;//获取绑定字段的名称
var proId:String = mydate.selectedItem.proId;//获取id
if(dataField=="completePreStr"){
var newData:String = "";
try{
newData = ComboBox(event.currentTarget.itemEditorInstance).selectedLabel//获取编辑后的新值
}catch(errObject:Error){
}
//判断为null的情况,否则很容易出现TypeError: Error #1009: 无法访问空对象引用的属性或方法
if(newData!=null){
myProService.updateCompletePreStr(proId,newData);//调用更新方法
}
}
}
]]>
</mx:Script>
<mx:Text fontFamily="微软雅黑" fontSize="12" text="项目名称" x="304" y="10"/>
<mx:Text fontFamily="微软雅黑" fontSize="12" text="所属部门" x="85" y="9"/>
<mx:ComboBox id="departmentId" dataProvider="{cards}"
x="146" width="150"
color="0x000000"
labelField="departmentName"
y="10"
change="changeHandler(event)"
enabled="true"
editable="true"/>
<mx:TextInput width="150" id="pageNum" x="365" y="11" change="changeHandler(event)"/>
<mx:RemoteObject id="myservice" destination="provinceService" result="resultHandler(event)"/>
<mx:RemoteObject id="myProService" destination="provinceService"/>
<mx:DateFormatter id="FD" formatString="YYYY年MM月DD日" />
<mx:Array id="coffeeArray">
<mx:Object label="readsea" data="readsea" />
<mx:Object label="readsea1" data="readsea11" />
<mx:Object label="readsea2" data="readsea22" />
<mx:Object label="readsea3" data="readsea33" />
</mx:Array>
<mx:DataGrid id="mydate" dataProvider="{userInfoList}" height="600" width="100%" fontFamily="微软雅黑" fontSize="12" y="40" editable="true" itemEditEnd="updatePro(event)">
<mx:columns>
<mx:DataGridColumn dataField="proId" visible="false" id="proId" editable="false"/>
<mx:DataGridColumn headerText="项目名称" dataField="proName" editable="false"/>
<mx:DataGridColumn headerText="客户名称" dataField="customName" editable="false"/>
<mx:DataGridColumn headerText="项目负责人" dataField="userNamePrincipal" editable="false"/>
<mx:DataGridColumn headerText="类别" dataField="type" editable="false"/>
<mx:DataGridColumn headerText="状态" dataField="state" editable="false"/>
<mx:DataGridColumn headerText="开始日期" dataField="beginTime" labelFunction="formatDate" editable="false"/>
<mx:DataGridColumn headerText="结束日期" dataField="completeTime" labelFunction="formatDate" editable="false"/>
<mx:DataGridColumn headerText="实际时长" dataField="atl" editable="false"/>
<mx:DataGridColumn headerText="总预算" dataField="forecastCost" editable="true"/>
<mx:DataGridColumn headerText="项目进度" dataField="completePreStr" editorDataField="value" id="jindu" editable="true" >
<mx:itemEditor>
<mx:Component>
<mx:ComboBox editable="true" width="100">
<mx:dataProvider>
<mx:String>模型</mx:String>
<mx:String>预演</mx:String>
<mx:String>小样</mx:String>
<mx:String>渲染</mx:String>
<mx:String>后期</mx:String>
</mx:dataProvider>
</mx:ComboBox>
</mx:Component>
</mx:itemEditor>
</mx:DataGridColumn>
<mx:DataGridColumn headerText="工作量" dataField="commision" editable="false"/>
<mx:DataGridColumn headerText="任务数量" dataField="taskNum" editable="false"/>
</mx:columns>
</mx:DataGrid>
<mx:Label text="{mydate.selectedItem.proId}" id="huahua"/>
<mx:RemoteObject id="department" destination="myObject" result="closeHandler(event)"/>
</mx:Application>
分享到:
相关推荐
WPF下DataGrid每行设置不同的ComboBox的数据绑定 DataGrid设置一次ItemSource 每个ComboBox也要设置一次ItemSource 有点像通过两次映射来绑定
easyui的datagrid中editor和combobox的级联,在datagrid中编辑项是下拉框的实现方式
本文给大家分享jQuery EasyUI编辑DataGrid用combobox实现多级联动效果的实例代码,代码简单易懂,非常不错,具有参考借鉴价值,感兴趣的朋友一起看看吧
easyui的datagrid中editor和combobox的级联
wpf中DataGrid中使用combobox 的控件的小例子
easyui datagrid 行编辑时 1、类型为combogrid时每行的参数不同查询返回对应的数据结果。 2、类型为combobox时,输入框显示图标按钮,实现对应的事件。 3、解决类型为combobox显示为value而不是text问题。
datagrid里添加combobox列,在拖动时会出现数据混乱问题,该实例解决此问题。
DataGrid中加入ComboBox的源码
WPF在DataGrid列中使用ComboBox绑定,改变ComboBox可回传至绑定的实体, 网上找了好久,终于搞定了,不是那个用枚举的例子!!ComboBox绑定的是一个实体列表. 程序名字叫 给唐僧选老婆!哈哈
这是我的博客 里提到的 表格使用的整个项目代码
这是一个在VB中使用 数据库绑定控件DataGrid的实例,演示了如何将从数据库中读取出的数据显示到DataGrid控件中。本例子中包括了很多ADO 操作数据库方面的基本操作,是新手学习VB环境下的ado操作的好范例,比如添加、...
修改上一个资源版本中结束编辑时combobox显示问题. 1、类型为combogrid时每行的参数不同查询返回对应的数据结果。 2、类型为combobox时,输入框显示图标按钮,实现对应的事件。 3、解决类型为combobox显示为value而...
自定义combobox带DataGrid下拉,可以定义搜索字段,添加按钮,功能的控件,非常实用
DataGrid动态绑定ComboBox <DataGridComboBoxColumn.EditingElementStyle>
wpf通过datagrid操作数据库,实现datagrid增删改操作。
当在datagrid行内部应用添加编辑操作时,引入combobox是非常方便的操作,我在引入combobox时对数据源这快做个总结,在做demo的过程中遇到个问题,就是当你选择了下拉框的值后点击保存,此时显示的是value值,而不是...
siverlight中DataGrid绑定ComboBox和ListBox及取值源码例子,
VB利用DataGrid控件显示数据库中数据信息,DataGrid在数据库数据显示的时候非常重要,它在用户操作舒适度及数据排列方面有独到之处,对于Vb数据库编程的用户来说,掌握DataGrid的使用是至关重要的事情。
DataGrid显示数据库查询 DataGrid显示数据库查询 DataGrid显示数据库查询