Include the client JavaScript & CSS libraries
<link rel="stylesheet" type="text/css" href="dbnetsuite.css.ashx" />
<script language="JavaScript" src="dbnetsuite.js.ashx"></script>
Client-side configuration script
<script>
jQuery(document).ready( init )
function init()
{
var dbnetgrid2 = new DbNetGrid("dbnetgrid2");
with (dbnetgrid2)
{
connectionString = "SamplesDatabase"
fromPart = "Customers join Orders on Customers.CustomerID = Orders.CustomerID join [Order Details] on Orders.OrderID = [Order Details].OrderID"
setColumnExpressions("Customers.CompanyName","Orders.OrderDate","[Order Details].OrderID","[Order Details].ProductID","[Order Details].UnitPrice","[Order Details].Quantity");
pageSize = 10
setColumnProperties("OrderID",{"primaryKey" : true, "display" : false, "editDisplay" : false});
setColumnProperties("ProductID",{"primaryKey" : true, "lookup" : "select productid, productname from products"});
setColumnProperty("UnitPrice","format","C");
}
var dbnetgrid1 = new DbNetGrid("dbnetgrid1");
with (dbnetgrid1)
{
connectionString = "SamplesDatabase"
fromPart = "Orders join [Order Details] on Orders.OrderID = [Order Details].OrderID"
setColumnExpressions(
"[Order Details].ProductID",
"Orders.OrderDate as FirstOrder",
"Orders.OrderDate as LastOrder",
"([Order Details].UnitPrice * [Order Details].Quantity) as TotalValue",
"([Order Details].UnitPrice * [Order Details].Quantity) as AvgValue"
)
pageSize = 10
groupBy = true
setColumnProperty("ProductID","label","Product")
setColumnProperty("ProductID","lookup","select productid, productname from products")
setColumnProperty("FirstOrder","label","First Order")
setColumnProperty("FirstOrder","aggregate","min")
setColumnProperty("FirstOrder","format","MMM yyyy")
setColumnProperty("LastOrder","label","Last Order")
setColumnProperty("LastOrder","aggregate","max")
setColumnProperty("LastOrder","format","MMM yyyy")
setColumnProperty("TotalValue","label","Total Value")
setColumnProperty("TotalValue","aggregate","Sum")
setColumnProperty("TotalValue","format","C")
setColumnProperty("AvgValue","label","Avg Value")
setColumnProperty("AvgValue","aggregate","Avg")
setColumnProperty("AvgValue","format","C")
bind("onRowSelected", loadOrderLines)
initialize()
}
}
function loadOrderLines(grid, args)
{
with(DbNetLink.components["dbnetgrid2"])
{
fixedFilterSql = "productid = @productid"
fixedFilterParams["productid"] = grid.columnValue("productid")
initialize()
}
}
</script>
HTML markup
<h3>Product Summary</h3>
<div id="dbnetgrid1"></div>
<h3>Order Lines</h3>
<div id="dbnetgrid2"></div>