Anatomy of the Grid in 1.0 Alpha1 - Ext JS

本文档详细介绍了如何使用1.0 Alpha1 Grid构建界面,并提供了实用的示例代码。作者分享了如何组装组件并处理数据存储及网格操作的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

After building an interface with the 1.0 Alpha1 Grid today and understanding how all of the components and classes relate to each other I put this together:


It follows the following example quite closely:
http://yui-ext.com/deploy/ext-1.0-al...id/paging.html

Follow along, let me know if there are any errors and if its helpful to anyone.

Aaron
Reply With Quote
  #2  
Old 02-20-2007, 11:54 PM
Default

great work!

GridView render gui and Grid assemble all things together
Reply With Quote
  #3  
Old 02-21-2007, 12:55 AM
Default

Aaaron that's great. I am going to sticky this. That would be great for the new grid tutorial as well.
Reply With Quote
  #4  
Old 02-21-2007, 01:00 AM
Default

Thanks Jack.

Could you tell me how to retrieve the index of the currently selected row?
var deleteRow = sm.getSelected();

Now I'm Lost.... :cry:
Reply With Quote
  #5  
Old 02-21-2007, 01:32 AM
Default

How come you need the index? The idea was to eliminate dependencies on the grids rows and columns since both are now variable (columns can be moved, rows can be split).
Reply With Quote
  #6  
Old 02-21-2007, 02:52 AM
Default

A small comment. And note that I am not an expert on the 1.0 Grid by a long way, so take with a pinch of salt...

A very minor issue, but the graphic slightly blurs the client/server separation. It might be misunderstood to imagine that the ?Reader? component is on the server side since it is immediately below the ?Server Side Technology? header.

It should be clear that the ?Reader? is a javascript, client side component. I think it should also be at position 3. The Proxy is used by the "Ext.Store" to perform the network I/O and uses an Ext.Reader of appropriate type to read a data record and convert it to an object that can be processed by Ext.Store.loadRecords(). The output from a Reader is passed into Store.loadRecords() as param 1, and looks like

{
records: [[?row1col1?, ?row1col2?],[?row2col1?,?row2col2?]], totalRecords: 2
}

I think we should mention the server side components which are required to provide the data, but we should use care in the naming of these. I suggest ?Provider? as a term. And then make a visual split between the two sides of the network connection.
Reply With Quote
  #7  
Old 02-21-2007, 09:46 AM
Default

Animal:
I agree with your comments and will try to update the graphic accordingly.

Jack:
The user clicks on a row on the grid. Then they click a "Delete" button on the toolbar. I can immediately determine what row is being deleted by:
var rowDelete = ds.getSelected();
I can also retrieve any data out of this Row/Record with
rowDelete.get(propertyName)
However I need to delete the row from the datastore and update the grid accordingly.

What I believe to be a work-around and not a particularly elegant solution is to listen to the rowselection event and store the index in a private class variable. Then I always know what row is selected and can use it for operations in my toolbar.

What's the best way to approach this?
Reply With Quote
  #8  
Old 02-21-2007, 10:03 AM
Default

I thought this would work after looking through the code:
deleteFinding : function() {
	var deleteRow = sm.getSelected();		
	alert('Deleting: ' + deleteRow.get('title'));				
	ds.remove(deleteRow);
},
However, I get the error "row has no properties" in the GridView after removing
Reply With Quote
  #9  
Old 02-21-2007, 11:10 AM
Default

That's fixed. I will be putting up a new build shortly.
Reply With Quote
  #10  
Old 02-21-2007, 12:24 PM
Default

Jack:

I downloaded the build you just posted (Server time 21-Feb-2007 10:28) and still getting the same error.

After removing the row I get the error:
Quote:
row has no properties
https://10.222.187.151/javascripts/ext-all.js
Line 200
Subsequent clicks on a grid row:
Quote:
Index or size is negative or greater than the allowed amount" code: "1
https://10.222.187.151/javascripts/ext-all.js
Line 200
Aaron
Reply With Quote
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值