分享
 
 
 

在ASP中使用智岛网格控件全过程

王朝asp·作者佚名  2006-12-16
窄屏简体版  字體: |||超大  

智岛网格控件作为数据的表示层,可以非常方便的进行货币样式、人民币大小写、中文大小写、各种逻辑样式、百分比样式、千分位分割等样式设置;可以冻结、锁定行列、对输入数据进行验证;可对字段设置公式,方便快捷地统计、汇总数据。智岛网格控件以其丰富多样的表现形式、简单易用的操作赢得了广大软件开发人员的一致好评。下面和大家分享一下智岛网格控件在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。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有