ExtJs表格点击超链接获取行的值
grid双击事件,并得到单元格的值,以上我试了下好像不行,最终我这样写了<br><br>grid.addListener('rowdblclick',function (sm, rowIndex, e) {<br>var selectionModel =
grid.getSelectionModel();<br>var record = selectionModel.getSelected();<br>alert(record.data['UserName']);<br>});<p>menuDisabled:true表示单列不可排序<br>enableHenu:true所有列不可排序<br>renderer:function(v)<br>{<br>
return v.link(v);<br>}<br><br><br>ExtJs表格<br>2009年11月09日 星期一 00:48<br>行
选择模式:<br><br>Js代码<br>var rowcount =
grid.getSelectionNode().getSelections(); <br><br>var rowcount =
grid.getSelectionNode().getSelections();<br>可以获取全部选中的记录,得到的rowcount将是一个
Array,比如想获取***列的数据,语句如下<br><br>Js代码<br>var str*** =
rowcount.get(‘***’); <br><br>var str*** = rowcount.get(‘***’);<br>单
元格选择模式<br><br><br>如果在GridPanel的配置属性增加sm属性如下<br><br>Js代码<br>sm:new
Ext.grid.CellSelectionModel(); <br><br>sm:new
Ext.grid.CellSelectionModel();<br>则表格的选择模式为单元格选择模式。当单击时将选中对应的某一个单元格,而不是默
认的选择某一行。选择方式如下<br><br>Js代码<br>var cell =
grid.getSelectionNode().getSelectedCell(); <br><br>var cell =
grid.getSelectionNode().getSelectedCell();<br>得到的cell记录了当前选择的行(cell)以
及列(cell).可以通过一下语句得到该单元格数据<br><br>Js代码<br>var colname =
grid.getColumnModel().getDataIndex(cell); //获取列名 <br>var celldata =
grid.getStore().getAt(cell).get(colname); //获取数据 <br><br>var colname =
grid.getColumnModel().getDataIndex(cell); //获取列名<br>var celldata =
grid.getStore().getAt(cell).get(colname); //获取数据<br>getStore():获取表格的数
据集<br>getAt():获取该数据集cell行<br>get():获取该行colname的数据<br><br><br>2)
为表格增加链接<br><br><br><br>有时我们需要为表格中的某一列添加一个链接。可以利用renderer配置属性为该列添加html<br>如
下:{id:'3',header:'名称',dataIndex:'name',renderer:DomUrl},<br>定义DomUrl方法<br><br><br><br>Js
代码<br>function DomUrl(value){ <br>return "<a
href=>"+value+"</a>"; <br>} <br><br>function DomUrl(value){<br>return
"<a href=>"+value+"</a>";<br>}<br>如果表格内的数据是一个链接
如:www.sina.com这样写法自然没有问题,但是大多数时候我们在表格中不会直接写一个链接,如果又需要根据单元格内容动态为链接添加几个参数。
那这种写法就几乎没有什么用了。因为这个属性是在表格初始化的时候定义好的,而且表格初始化之后这个属性无法改变,也就是只读属性。<br><br><br>处
理方法如下:<br>定义一个全局变量,初始值为0;DomUrl函数如下<br><br>Js代码<br>function
DomUrl(value){ <br>var row =
grid.getSelectionModel().selectRow(startrow);//选中当前行 <br>var rownum =
grid.getSelectionModel().getSelected();//获取当前行 <br>startrow ++; <br>var
strurl = "abc.jsp?id=" + rownum.get('id');//获取当前选中行的值,并组织链接字符串 <br>return
"<a href='"+strurl+"'>"+value+"</a>"; <br>} <br><br>function
DomUrl(value){<br>var row =
grid.getSelectionModel().selectRow(startrow);//选中当前行<br>var rownum =
grid.getSelectionModel().getSelected();//获取当前行<br>startrow ++;<br>var
strurl = "abc.jsp?id=" + rownum.get('id');//获取当前选中行的值,并组织链接字符串<br>return
"<a href='"+strurl+"'>"+value+"</a>";<br>}<br>不过不要忘记在下次提交的时
候将startrow赋值为0。<br><br><br>3) 表格的属性<br><br><br>表格的属性分为配置属性(在操作表格时无法修改),以
及其他可读写属性,方法,以及事件。如下:<br><br><br>配置属性<br><br><br><br>a)
activeItem:渲染布局时激活的子元素。<br>b) applyTo:指定渲染对象。<br>c)
autoDestroy:当容器的子元素从容器中移除时是否自动销毁。<br>d)
autoExpandColumn:指定自动填充表格剩余区域的列id<br>e) autoExpandMax:可自动扩张的最大宽度。<br>f)
autoExpandMin:可自动扩张的最小宽度<br>g) autoHeight:自动扩充高度<br>h) autoShow:是否自动显示<br>i)
autoWidth:自动扩充宽度<br>j) bbar/tbar:底部/顶部状态栏<br>k) bufferResize:容器再布局的缓冲频率<br>l)
colModel/cm:列模式<br>m) cls:组件的额外css格式。<br>n) collapsible:是否显示快捷隐藏按钮<br>o)
defaults:指定默认配置。<br>p) disableSelection:是否禁止选择表格行或列<br>q)
enableDragDrop:是否允许表格列的拖放操作。<br>r) enableHdMenu:是否显示表格列的菜单。<br>s)
frame:边框是否显示<br>t) loadMask: 是否显示加载动画<br>u) selModel/sm:表格选择模式<br>v)
store:表格数据集<br>w) stripeRows:是否显示分隔线。<br>x) title:表格标题<br><br><br>方法<br><br><br>a)
getColumnModel():得到表格列模型<br>b) getGridEl():得到表格下的元素<br>c)
getPosition():得到组件的当前位置,返回一个数组<br>d) getSelectionModel():得到选中模型<br>e)
getSize():得到组件大小<br>f) getStore():得到组件的数据集<br>g)
getView():得到表格的GridView对象。<br>h) hide():隐藏当前组件<br>i)
isVisible():判断当前组件是否显示<br>j) setDisabled( Boolean):设置组件的可用性<br>k)
un():解除组件的监听<br>l) on():为组件添加监听<br>on ( String eventName, Function
handler, )<br>eventName:添加监听的名称<br>handler:事件处理函数<br>scope:
事件响应的作用域,包括scope,delay,single,buffer。<br><br>----------------------------<br><%@
page language="java" import="java.util.*" pageEncoding="UTF-8"%><br><%<br>String
path = request.getContextPath();<br>String basePath =
request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";<br>%><br><br><!DOCTYPE
HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><br><html><br>
<head><br> <base href="<%=basePath%>"><br>
<title>My JSP 'MyJsp.jsp' starting page</title><br>
<meta http-equiv="pragma" content="no-cache"><br> <meta
http-equiv="cache-control" content="no-cache"><br> <meta
http-equiv="expires" content="0"> <br> <script
type="text/javascript"
src="<%=path%>/js/ext-base.js"></script><br>
<script type="text/javascript"
src="<%=path%>/js/ext-all.js"></script><br> <link
rel="stylesheet" type="text/css"
href="<%=path%>/resources/css/ext-all.css"><br> <script
type="text/javascript"><br>Ext.onReady(function(){<br>
Ext.QuickTips.init();<br> Ext.state.Manager.setProvider(new
Ext.state.CookieProvider());<br> var myData = [<br> ['3m
Co', 71.72, 0.02, 0.03, '9/1 12:00am'],<br>
['Alcoa Inc', 29.01, 0.42, 1.47, '9/1
12:00am'],<br> ['Altria Group Inc', 83.81,
0.28, 0.34, '9/1 12:00am'],<br> ['American Express
Company', 52.55, 0.01, 0.02, '9/1 12:00am'],<br>
['American International Group, Inc.', 64.13, 0.31, 0.49, '9/1
12:00am']<br> ];<br><br> function change(val) {<br> if (val
> 0) {<br> return '<span style="color:green;">' +
val + '</span>';<br> } else if (val < 0) {<br>
return '<span style="color:red;">' + val + '</span>';<br>
}<br> return val;<br> }<br><br> function pctChange(val) {<br>
if (val > 0) {<br> return '<span
style="color:green;">' + val + '%</span>';<br> } else if
(val < 0) {<br> return '<span style="color:red;">' +
val + '%</span>';<br> }<br> return val;<br> }<br><br>
var store = new Ext.data.ArrayStore({<br> fields: [<br>
{name: 'company', renderer:getHideValue},<br> {name:
'price', type: 'float'},<br> {name: 'change', type:
'float'},<br> {name: 'pctChange', type: 'float'},<br>
{name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia'}<br> ]<br>
});<br><br> store.loadData(myData);<br> <br> function
getHideValue(value)<br> {<br> return "<a
href=javascript:show></a>"<br> }<br> <br> var grid =
new Ext.grid.GridPanel({<br> store: store,<br> columns: [<br>
{<br> id :'company',<br> header :
'Company', <br> width : 160, <br>
sortable : true, <br> dataIndex: 'company'<br>
},<br> {<br> id :'p',<br>
header : 'Price', <br> width : 75, <br>
sortable : true, <br> renderer : 'usMoney', <br>
dataIndex: 'price'<br> },<br> {<br>
header : 'Change', <br> width : 75, <br>
sortable : true, <br> renderer : change, <br>
dataIndex: 'change'<br> },<br> {<br>
header : '% Change', <br> width : 75, <br>
sortable : true, <br> renderer : pctChange, <br>
dataIndex: 'pctChange'<br> },<br> {<br>
header : 'Last Updated', <br> width : 85, <br>
sortable : true, <br> renderer :
Ext.util.Format.dateRenderer('m/d/Y'), <br> dataIndex:
'lastChange'<br> },<br> {<br>
xtype: 'actioncolumn',<br> width: 50,<br>
items: [{<br> icon : 'resources/delete.gif', //
Use a URL in the icon config<br> tooltip: 'Sell
stock',<br> handler: function(grid, rowIndex,
colIndex) {<br> var rowcount =
grid.getSelectionNode().getSelections();<br> var
rec = store.getAt(rowIndex);<br> alert("Sell " +
rec.get('company'));<br> }<br> }]<br>
}<br> ],<br> stripeRows: true,<br>
autoExpandColumn: 'company',<br> height: 350,<br> width:
600,<br> title: 'Array Grid',<br> stateful: true,<br>
stateId: 'grid'<br> });<br><br> grid.render('grid-example');<br>});<br>
function show(value)<br> {<br> alert("jj");<br> }<br>
</script><br> </head><br> <br> <body><br> <div
id='grid-example' align="center"></div><br> </body><br></html></p>
页:
[1]