gridpanel中 getSelectionModel()

var model = grid.getSelectionModel(); model.selectAll();//选择所有行 model.selectFirstRow();//选择第一行 model.selectLastRow([flag]);//选择最后一行,flag为正的话保持当前已经选中的行数,不填则默认false model.selectNext();//选择下一行 model.selectPrevious();//选择上一行 model.selectRange(tartRow,ndRow, [Boolean keepExisting] );//选择范围间的行 model.selectRow(row);//选择某一行 model.selectRows(rows);//选择指定一些行,传递数组如[1,3,5],则分别选择1,3,5行 model.clearSelections();//清空所有选择 model.deselectRange( startRow, endRow );//取消从startrow到endrow的记录的选择状态 model.deselectRow(row);//取消指定行的记录grid.getSelected().id //得到选中的行的标识var getSelect=function (grid, col)…{ //获取选中grid的列var st="";for (var i = 0; i < grid.getSelectionModel().getSelections().length; i++)…{st+=grid.getSelectionModel().getSelections()[i].get("'"+col+"'")+",";}}上边是gridpanel选中行操作Ext.Net GridPanel Selection包括三种:RowSelectionModel:行选择模型 CheckboxSelectionModel:带有复选框的行选择模型 CellSelectionModel:单元格选择模型

默认情况下,GridPanel使用RowSelectionModel,能够进行单选,如果要GridPanel能够进行多选,需要在GridPanel中添加属性:

="grid"="200"MultiSelect="true">

下面我们来分别看一下这三种模型的用法

RowSelectionModel

效果如下:

实现代码:

<SelectionModel><></SelectionModel>

在RowSelectionModel的配置中,属性Mode表示选择的类型,分别是Single(单选)、Multi(多选)和Simple(简单多选)

单选和多选的区别很明显,我们来说一下Multi和Simple的区别:

multi:多选,但需要使用键盘Ctrl、Shift来配合完成。在实际使用的过程中你会发现,单纯的鼠标单击并不能实现多选,需要同时按下Ctrl键才能多选,如果要选择一个区域,则可以同时按下Shift键。Simple:多选,不需要Ctrl或Shift键的配合。只使用鼠标即可实现多选。

CheckboxSelectionModel

效果如图:

代码如下:

="server"="1"></

Mode属性与RowSelectionModel中的Mode属性功能相同,,不在赘言。

InjectCheckbox属性用来决定Checkbox列显示在什么位置(第几列),默认为0,从第0列开始。

CellSelectionModel

代码如下:

我试了一下,好像是只能选中一个单元格。

查了ExtJS API以后发现确实只能选择一个单元格,它同样也有一个Mode属性,但这个属性只有一个可用值:Single。

客户端获取选择的值

由于这系列比较偏重服务器端的处理,所以这个地方简单的说一下客户端获取值的方法,代码如下:

var selectedRows = grid.getSelectionModel().getSelection();

grid是我们的GridPanel,首选获取它的选择模型,得到模型之后,再从选择模型中得到选中的内容。

服务器端获取选择的值

对于服务器端来说,我们可以用同样的思路来获取选中的值。

;if (selectionModel.SelectedRows.Count == 0){).Show();return;}.Empty;selectionModel.SelectedRows){ids += "," + item.RecordID;}ids = ids.Trim(‘,’);

注意:如果Store所关联的Model没有设置IDProperty,将导致无法获取RecordID

上面的代码是针对RowSelectionModel和CheckboxSelectionModel来说的,如果是CellSelectionModel,我们还可以获取到单元格的值等内容:

;//获取记录IDvar recordId = cellModel.SelectedCell.RecordID;//获取单元格值var cellValue = cellModel.SelectedCell.Value;//获取列名称var columnName = cellModel.SelectedCell.Name;//获取列号var columnIndex = cellModel.SelectedCell.ColIndex;//获取行号var rowIndex = cellModel.SelectedCell.RowIndex;



先知三日,富贵十年。

gridpanel中 getSelectionModel()

相关文章:

你感兴趣的文章:

标签云: