在ASP中使用智島網格控件全過程
發表時間:2023-08-19 來源:明輝站整理相關軟件相關文章人氣:
[摘要]智島網格控件作為數據的表示層,可以非常方便的進行貨幣樣式、人民幣大小寫、中文大小寫、各種邏輯樣式、百分比樣式、千分位分割等樣式設置;可以凍結、鎖定行列、對輸入數據進行驗證;可對字段設置公式,方便快捷...
智島網格控件作為數據的表示層,可以非常方便的進行貨幣樣式、人民幣大小寫、中文大小寫、各種邏輯樣式、百分比樣式、千分位分割等樣式設置;可以凍結、鎖定行列、對輸入數據進行驗證;可對字段設置公式,方便快捷地統計、匯總數據。智島網格控件以其豐富多樣的表現形式、簡單易用的操作贏得了廣大軟件開發人員的一致好評。下面和大家分享一下智島網格控件在ASP中的應用心得:


圖1 樣式設置

圖2 圖片管理

圖3 多層標題

圖4 匯總模式

圖5 凍結鎖定

圖6 合并模式
一、注冊智島網格控件
下載智島網格控件(其文件名為OGrid.ocx)后,按照如下方法注冊控件:
點擊“開始”→“運行”;在運行對話框中輸入以下命令:
regsvr32 < OGrid.ocx文件的絕對路徑> 注冊智島網格控件控件
regsvr32 /u < OGrid.ocx文件的絕對路徑> 解除智島網格控件的注冊
二、在頁面中添加智島網格控件
在頁面中加入以下代碼,即可插入智島網格控件:
<object classid="clsid:79B00E6B-6110-46AE-891C-97773022C958" width="0" height="0" id="OGrid" CODEBASE="http://www.oapro.com/ostarocx/download/OGrid.ocx"></object>
其中:
width和height:指控件的顯示寬度和高度;
id:指控件對象的名稱,通過該名稱實現對控件的操作;
CODEBASE:指沒有安裝智島網格控件的客戶端運行該頁面時自動下載安裝該控件的刂貳?lt;/P>
三、用智島網格控件表現XML格式數據
1. XML文檔格式
智島網格控件采用XML文檔作為數據存儲交換格式,下面是一份XML文檔格式:
<?xml version="1.0" encoding="GB2312"?>
<Table>
<TableInfo><!--表信息-->
<TableName>人事表</TableName><!--數據表名稱-->
<FieldInfoArray>
<FieldInfo><!--記錄字段信息的XML-->
<FieldName>姓名</FieldName><!--字段名稱-->
<DataType>10</DataType><!--字段數據類型3:邏輯型7:數值型10:字符型12:備注型23:日期型-->
<CellType>0</CellType><!--表元類型0:文本框,1:組合框,2:檢驗框,3:日期時間,7:人民幣小寫欄金額控件-->
</FieldInfo>
...
</FieldInfoArray>
</TableInfo>
<Rows><!--多行數據-->
<Row><!--單行數據-->
<name>張三</name>
<sex>男</sex>
...
</Row>
...
</Rows>
</Table>
2. 代碼實現
通過以下語句通知智島網格控件打開XML文檔:
OGrid.OpenTableXML(")
其中引號內XML文檔的絕對路徑,例如:
http://www.oapro.com/ostarocx/sample/OGrid/xml/樣式設置.xml
或者
C:\樣式設置.xml
四、用智島網格控件表現來自于數據庫的數據
1. XML文檔格式
智島網格控件采用XML文檔作為交換格式,但更多的數據源是數據庫,如何表現來自于數據庫的數據呢?我們可以將數據庫的數據動態轉為XML格式。以下代碼實現了將一ACCESS數據庫中指定數據表的內容轉為XML文檔格式。您可將代碼中db.mdb文件換成您自己的數據庫名稱。指定的數據表名稱來自于傳遞到該文件的參數值:Table_name。
<%
dim sql,rs
dim Table_name
<!--取得數據表名稱-->
Table_name=request.QueryString("Table_name")
Set rs= Server.CreateObject("ADODB.Recordset")
Const adSchemaTables = 20
adSchemaColumns = 4
strConn="DBQ="+server.mappath("db.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.open strConn
Set rstSchema = oConn.OpenSchema(adSchemaColumns)
Set rsttable = oConn.OpenSchema(adSchemaTables)
i=0
%><?xml version="1.0" encoding="gb2312"?>
<Table>
<TableInfo>
<TableName><%=Table_name%></TableName>
<FieldInfoArray>
<%
//生成XML文件頭
Do Until rstSchema.EOF
if rstSchema("Table_name") = Table_name then
if rstschema("column_Name")<>"ORowInfo" or rstschema("column_Name")<>"osysMachineID" then
%> <FieldInfo>
<FieldName><%=rstschema("column_Name")%></FieldName> <ColName><%=rstschema("column_Name")%></ColName>
<%select case rstschema("data_type")
case "130"
if rstschema("CHARACTER_MAXIMUM_LENGTH") = 1073741823 then%> <DataType>12</DataType>
<CellType>0</CellType>
<%else%> <DataType>10</DataType>
<CellType>0</CellType>
<%end if
case 135%> <DataType>23</DataType>
<CellType>3</CellType>
<%case 3%> <DataType>7</DataType>
<CellType>0</CellType>
<%case 11%> <DataType>3</DataType>
<CellType>2</CellType>
<%case 131%> <DataType>10</DataType>
<CellType>0</CellType>
<%case 5%> <DataType>7</DataType>
<CellType>0</CellType>
<%case else%> <DataType>10</DataType>
<CellType>0</CellType>
<%end select%> </FieldInfo>
<%end if
end if
rstSchema.MoveNextLoop
%> </FieldInfoArray>
</TableInfo>
<Rows>
//生成XML文件體
<%
sql="select * from "&Table_name
rs.open sql,strConn,1,1
Do while Not rs.eof
%> <Row>
<%
for k=0 to rs.fields.count-1
if rs(k).name<>"ORowInfo" or rs(k).name<>"osysMachineID" then
%> <<%=rs(k).name%>><%=rs(k)%></<%=rs(k).name%>>
<%
end if
next
%> </Row>
<%
rs.movenext
loop
rs.close
%> </Rows>
</Table>
2. 代碼實現
通過以下語句通知智島網格控件打開XML文檔:
OGrid.SetTableXML(OGrid.HttpGet("http://www.oapro.com/mdb2xml.asp","Table_name=<%=TABLE_NAME%>"))
其中方法HttpGet有二個參數,第一個參數為我們上面介紹的實現數據庫轉換XML格式的網頁地址,一定要為網址格式,不能用相對或絕對路徑(因為目前該方法尚不支持),第二個參數為傳遞到該文件的參數,這里我們傳遞的是數據表名稱:Table_name。
五、保存對數據的修改
在網格控件中可以新增、刪除記錄以及修改記錄內容,如何使這些修改保存到數據源中去?智島網格控件提供了三個這方面的事件:
1. 新增記錄:EventSQLInsertRecord(strTableName,strSQL)
2. 刪除記錄:EventSQLDeleteRecord(strTableName,strSQL)
3. 修改記錄:EventSQLUpdateRecord(strTableName,strSQL)
其中:
strTableName為產生事件的數據表名稱;
strSQL為執行事件的SQL語句。
這二個參數由智島網格控件提供給我們,供我們調用。
我們可通過腳本實現對事件的觸發,以下是一范例代碼:
<SCRIPT FOR="OGrid" EVENT="EventSQLInsertRecord(strTableName,strSQL)" LANGUAGE="JavaScript" >
OGrid.HttpGet("http://www.oapro.com/updata.asp","sql="+strSQL);
</SCRIPT>
以上代碼實現了網格控件的記錄發生修改時,便調用updata.asp文件實現對數據庫相關內容進行修改。updata.asp文件內容如下:
<%@language=vbscript codepage=936 %>
<%
dim sql
sql=request.QueryString("sql")
response.write sql
strConn="DBQ="+server.mappath("db.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.open strConn
oConn.Execute(sql)
response.write sql
%>
六、范例
上面文章完整地介紹了智島網格控件在ASP中的使用全過程,也許一個編輯成型的范例更具有說服力。那么就請領略這份鮮活的感覺吧:http://www.oapro.com/ostarocx/sample/ogrid_f/default.asp。