EasyUI datagrid 如何默认选择多行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EasyUI datagrid 如何默认选择多行相关的知识,希望对你有一定的参考价值。
action 返回的是列表, 前台用 datagrid 表格显示, 其中有几条记录是要求 checkbox 选中状态,现在找了个方法:$(#grid).datagird( onLoadSuccess:function(data)//当数据加载成功时触发 $('#tt').datagrid("selectRow", 5););只实现了选择一行,还是无法满足需求, 请问有没有方法或属性支持 默认可以选中多行记录的方式?
EasyUI datagrid 选择多行的方法:SingleSelect:false,即可实现选择多行。
【解析】
原因分析:
datagrid 中的 idField 属性,必须对应后台的实体属性字段,而且该字段必须确保唯一性,一般用id标识,否则就无法获取在datagrid中选择的多条记录。
DataGrid组件包括2个方法检索选择行数据:
· getSelected: 得到第一个选择行的数据,如果没有选择行则返回null否则返回该记录。
· getSelections:得到全部的选择行的数据,如果元素是记录的话,返回数组数据。 参考技术A 多调用几次就行了$(#grid).datagird( onLoadSuccess:function(data)//当数据加载成功时触发 $('#tt').datagrid("selectRow", 5); $('#tt').datagrid("selectRow", 4); $('#tt').datagrid("selectRow", 3););
Flex Datagrid 选择多行并发送到 amfphp 后端
【中文标题】Flex Datagrid 选择多行并发送到 amfphp 后端【英文标题】:Flex Datagrid select multiple rows and send to amfphp backend 【发布时间】:2012-11-12 23:08:17 【问题描述】:我正在互联网上的论坛上研究一些解决方案以将 ArrayCollection 发送到 AmfPHP,但我没有找到很好的响应,以及如何访问 PHP 端的数组以包含到 MySQL 表中。
我的问题:
我有一个填充了一些名称和电子邮件的 Flex 数据网格,我想创建一种方法来允许用户创建一个组并选择名称作为该组的一部分。我在 Flash Builder 调试器中看到数据以 ArrayCollection 的形式发送(也从 Vector 转换为 Object),问题仍然在于如何在 PHP 端访问该数组。
这是发送到 AmfPHP 的 ArrayCollection:
[0] Object (@cf87311)
[1] Object (@d4bfcb9)
[2] Object (@d4d3479)
这里是数组的键和值:
[0] Object (@cf87311)
id "2"
nome "David"
username "david"
[1] Object (@d4bfcb9)
id "3"
nome "jose"
username "jose@jose.com"
[2] Object (@d4d3479)
id "4"
nome "joao"
username "joao@joao.com"
有谁知道我必须做什么才能访问此数组中的“id”字段?
最好的问候!
拉斐尔·塔瓦雷斯
【问题讨论】:
【参考方案1】:AMFPHP 会将您的 actionscript 对象转换为 PHP 对象。将arraycollection 作为一个参数传递。在 PHP 方面,您可以将其用作:
function myfunction( $Object_param )
foreach( $Object_param as $Object )
echo $Object[ 'id' ];
echo $Object[ 'nome' ];
等等。
【讨论】:
感谢您的帮助!我现在已经测试过,它不起作用。没有为数组的每个组件分配 $Object['id'] 对象的值。我以这种方式将向量转换为对象: var temp:ArrayCollection = new ArrayCollection(); var selIndices:Vector.protected function button_criar_grupo_clickHandler(event:MouseEvent):void var temp:ArrayCollection = new ArrayCollection(); var selIndices:Vector.<int> = datagrid_grupo_usuarios.selectedIndices; var selItems:Vector.<Object> = datagrid_grupo_usuarios.selectedItems; var numItems:Number = selIndices.length; for (var i:Number = 0; i<numItems; i++) temp.addItem(selItems[i]); var params:Object = new Object params.usuarios=temp; criar_grupo.getOperation("retornaCriaGrupo").arguments = params; criar_grupo.getOperation("retornaCriaGrupo").send();
<s:RemoteObject id="criar_grupo" destination="amfphp" source="Login" showBusyCursor="true"> <s:method name="retornaCriaGrupo" result="retornaCriaGrupo(event)" fault="onFault(event)"> <s:arguments> <!-- <nome_grupo></nome_grupo> --> <usuarios></usuarios> <!--<usuario></usuario> --> </s:arguments> </s:method> </s:RemoteObject>
PHP函数public function retornaCriaGrupo($Object_param) $mysql = mysql_connect(DATABASE_SERVER, DATABASE_USERNAME, DATABASE_PASSWORD) or die(mysql_error()); mysql_select_db( DATABASE_NAME ); foreach($Object_param as $Object=>$value) $query="insert into grupo_usuario (id_grupo,id_usuario) values ('1','".$Object[ 'id' ]."')"; $result = mysql_query($query,$mysql); if ($result) return 1; else return 999;
以上是关于EasyUI datagrid 如何默认选择多行的主要内容,如果未能解决你的问题,请参考以下文章
easyui datagrid怎么可以移除多行呢, 请教高手
easyui datagrid 删除多行? 每删一行,行号就会发生变化,如何通过id删除,不通过行号删,该怎么写?
easyui datagrid checkbox的相关属性整理