flex DataGrid 编辑后保存

xiaoxiao2026-05-21  3

 <?php require_once ('./vo/org/corlan/VOAuthor.php'); //conection info define( "DATABASE_SERVER", "localhost"); define( "DATABASE_USERNAME", "root"); define( "DATABASE_PASSWORD", ""); define( "DATABASE_NAME", "mysite"); class MyService {     public function getData() {         //connect to the database.         $mysql = mysql_connect(DATABASE_SERVER, DATABASE_USERNAME, DATABASE_PASSWORD);         mysql_select_db(DATABASE_NAME);         mysql_query("SET NAMES UTF8");         //retrieve all rows         $query = "SELECT id_aut, fname_aut, lname_aut FROM authors_aut ORDER BY fname_aut";         $result = mysql_query($query);         $ret = array();         while ($row = mysql_fetch_object($result)) {             $tmp = new VOAuthor();             $tmp->id_aut = $row->id_aut;             $tmp->fname_aut = $row->fname_aut;             $tmp->lname_aut = $row->lname_aut;             $ret[] = $tmp;         }         mysql_free_result($result);         return $ret;     }     public function saveData($author) {         if ($author == NULL)             return NULL;         //connect to the database.         $mysql = mysql_connect(DATABASE_SERVER, DATABASE_USERNAME, DATABASE_PASSWORD);         mysql_select_db(DATABASE_NAME);         //save changes         $query = "UPDATE authors_aut SET fname_aut='".$author->fname_aut."', lname_aut='".$author->lname_aut."' WHERE id_aut=". $author->id_aut;         $result = mysql_query($query);         return NULL;     } } ?> ------------amfphp\services\vo\org\VOAuthor.php----------------- <?php class VOAuthor {     public $id_aut;     public $fname_aut;     public $lname_aut;     // explicit actionscript class     var $_explicitType = "org.corlan.VOAuthor"; } ?> --------------------------mxml文件------------------------------------ --------------------RemotingVOAuthor.mxml----------------------

<mx:DataGrid id="myGrid" dataProvider="{myRemote.getData.lastResult}" editable="true" itemEditEnd="save(event)"> <mx:columns> <mx:DataGridColumn dataField="id_aut" editable="false"/> <mx:DataGridColumn dataField="fname_aut"/> <mx:DataGridColumn dataField="lname_aut"/> </mx:columns> </mx:DataGrid> </mx:VBox> </mx:Application> ----------------org\corlan\VOAuthor.as-----------------package org.corlan { [RemoteClass(alias="org.corlan.VOAuthor")] [Bindable] public class VOAuthor { public var id_aut:int; public var fname_aut:String; public var lname_aut:String; } } //----------------------------分析------------------------------- 1 面向对象的设计思路,抽象出两个模型,一个是php,一个是.as格式,互相对应,这两个类的成员变量命名是一致的。 2 注意文件的组织方式,模型文件均放在相关目录下例如:org\corlan\VOAuthor.as,类文件首字母大写 3 注意{myRemote.getData()},调用以后没有立即处理数据,而是通过"{myRemote.getData.lastResult}"的lastResult属性去读取缓存中的访问结果。 4 前端的mxml的script中: var dataGrid:DataGrid = event.target as DataGrid; //获取当前编辑的单元格对象 var dsColumnIndex:Number = event.columnIndex;   //列号 var col:DataGridColumn = dataGrid.columns[dsColumnIndex]; //? var newValue:String = dataGrid.itemEditorInstance[col.editorDataField]; //读取新值,这里要研究下                                                                                                                  //dataGrid各个属性的含义 var author:VOAuthor = event.itemRenderer.data as VOAuthor; //获取当前显示的单元格对象 author[dsFieldName] = newValue; //更新显示状态 5 webservice的方式直接调用php中的存储方法: myRemote.saveData(author);

转载请注明原文地址: https://www.6miu.com/read-5049161.html

最新回复(0)