Linking dynamic (nested) grids
动态连接(嵌入)grid
另外一个连接grid的方法是用内嵌或者树形来创建,这里用到addNestGrid方法,初始化时只有顶层grid被创建,当发送查看所选列明细的请求时才动态的创建明细记录.
顶层定义为一个静态grid:
<div id=dbnetgrid1 style='behavior:url(../dbnetgrid.htc)'></div>
为了定义子grid,可以在初始化顶层grid时调用addNestGrid方法
...
document.all.dbnetgrid1.primaryKeyColumn = "customers.customerid"
document.all.dbnetgrid1.addNestedGrid( configureOrdersGrid, "orders.customerid" )
...
此方法包含2个参数,一个是配置明细grid的函数的引用,一个是明细grid的外键,和父grid的主键对应.
...
function configureOrdersGrid()
{
with (window.event.srcElement.childGrid)
{
displayToolbar = false
fromPart = "orders"
headings = ["Order Date","Required Date","Shipped Date"]
selectPart = ["orderdate","requireddate","shippeddate"]
addNestedGrid( configureOrderDetailsGrid, "orderid" )
primaryKeyColumn = "orderid"
loadData()
}
}
function configureOrderDetailsGrid()
{
with (window.event.srcElement.childGrid)
{
displayToolbar = false
fromPart = "[order details].products"
joinPart = "[order details].productid = products.productid"
headings = ["Product","Unit Price","Quantity", "Discount"]
selectPart = ["products.productname", "[order details].unitprice", "[order details].quantity", "[order details].discount"]
loadData()
}
}
...
一旦明细grid通过addNestedGrid调用的配置方法而被添加后,可以通过访问父grid(通过srcElement事件来访问)的childGrid属性访问子grid