虽然这看起来比使用参数更复杂一些,但是仍然比较简单。别忘了参数名是如何映射到属性的?这里所做的就是设置那些属性,然后调用Refresh方法更新数据控件。看上去,这可能比以前的例子更糟糕,因为在代码中只有不多的asp,也只是简单地在属性中填入Web服务器的名字。但使用该方法可以在不修改代码的情况下将此ASP页面从一个服务器移到另一个服务器。作为数据源的表名可以通过选择适当的按钮而传给函数。 一旦加载了数据,将触发数据控件的ondatasetcomplete事件,运行createCells函数。 function createCells() { var fldF; var tblCell;
// delete what's there already deleteCells();
// now create the new cells for (fldF = new Enumerator(dsoData.recordset.Fields); !fldF.atEnd(); fldF.moveNext()) { // create a new cell for the heading tblCell = tblData.rows[0].insertCell(); tblCell.innerHTML = '<B>' + fldF.item().name + '</B>';
// create a new cell for the body tblCell = tblData.rows[1].insertCell(); tblCell.innerHTML = '<INPUT TYPE="TEXT" DATAFLD="' + fldF.item().name + '"></INPUT>'; }
// now bind to the data source tblData.dataSrc = '#dsoData'; } 这同样也很简单。首先删除了现有的表格单元格(马上会介绍这个函数),然后遍历记录集的字段。在行头为每个字段创建一个新单元格(这个表格只有两行:第一行,即第0行,是表头;第二行,即第1行,是表体)。表格单元创建完后,将innerHTML属性设为对应的字段名。在表体中创建新单元格的过程类似,但此时使用innerHTML元件保存绑定到数据字段的INPUT标记。当所有的字段都完成这样的操作后,这个表就与数据控件绑定了。 因为这个页面允许在两个不同的数据集之间进行切换,所以需要先删除现有的数据。 function deleteCells() { var iCell; var iCells;