帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > ASP.NET编程 >
对象、变量与集合
作者:佚名 发布时间:2005-04-02 来源:不详
 


对象变量
    所谓对象变量,指的是变量里面所存放的数据是某个对象存放于内存的哪个地方。我们举个例子:

Dim Cell As HtmlTableCell

    上述叙述宣告了一个Cell 变量,里面可以存放HtmlTableCell 控件所在的内存地址。所以我们执行这个叙述时,内存会为我们准备好一个空间,用来等待存放HtmlTableCell 控件的内存地址:

    这时候Cell 变量内的内容是空的,因为我们还没有指定一个对象的内存地址给这个变量。要产生一个对象,要使用New 运算子。New 运算子会依照后面所指定的对象类别来产生对象,例如:

Cell=New HtmlTableCell

    这个叙述执行完后,会在内存中产生一个HtmlTableCell 对象,然后将对象所在的内存地址传给对象变量Cell:

    将新产生对象的内存地址传给变量时,就是宣告要以这个变量名为这个对象的ID 属性,所以我们就可以在程序代码中以指定变量名称的方式控制对象。这就是我们说的对象的参考,所以我们就可以利用下列的方式来控制HtmlTableCell 对象:

Cell.属性="Value" '设定对象的属性
变数=Cell.属性'取出对象的属性
Cell.方法() '执行对象的方法

    所以我们要使用指到一个对象型态的变量时, 倘若没有将这个变量指到实际产生出来的对象,那么便不能使用这个对象的属性、方法以及事件。另外以下这两行叙述:

Dim Cell As HtmlTableCell
Cell=New HtmlTableCell

可以合并成一行:

Dim Cell As HtmlTableCell = New HtmlTableCell

Collection 集合对象
    集合对象可以被我们用来管理许多对象。它可以取得对象的地址,并将对象有条理的收纳管理,让我们以一个集合对象就可以取得其它对象的地址,进而控制对象。我们刚刚了解产生对象的方法,我们再来看看如何将这些对象收纳到集合中进行管理。首先我们观察下列的叙述:

Dim Cell As HtmlTableCell = New HtmlTableCell
Dim Row As HtmlTableRow = New HtmlTableRow
Cell.InnerText="Cell1"
Row.Cells.Add(Cell)
Cell = New HtmlTableCell '再产生一个新的HtmlTableCell 对象
Cell.InnerText="Cell2"
Row.Cells.Add(Cell)

    程序执行完前两行时,会分别产生HtmlTableCell 对象及HtmlTableRow 对象,并将其内存地址指定给Cell 以及Row 这两个对象变量。当程序执行到第四行时,会利用Cells 集合对象之Add方法,将Cell 对象所指到的内存地址存入Row 对象的Cells 集合中;并且指定一个Index 值0,好让我们日后可以指定集合中的这个对象。而当程序执行到第五行时,又产生一个新的HtmlTableCell 对象,并将这个新对象的内存地址给Cell 变量,所以此时Cell 变量所指到的对象已经是另外一个新的HtmlTableCell 对象。程序执行到最后一行时,又再利用Row 对象中的Cells集合之Add 方法,将Cell 变量新指到的内存地址加入集合中,并指定Index 值为1。上列程序代码执行后的内存状况,如下图所示:

    此时我们可以利用集合对象的Count 属性,传回集合中总共记录了多少对象的内存地址,例如:

Response.Write(Row.Cells.Count)

    这时候浏览器就会印出2,表示有两个对象被集合所管理。我们将对象的地址收纳进集合时,指定了一个Index 值。这个Index 值可以让我们把集合中的项目取出来,只要透过集合对象的Item方法取出即可。如下范例所示:

Dim TmpCell As HtmlTableCell
TmpCell = Row.Cells.Item(0)

    上述程序代码宣告了名为TmpCell 指到HtmlTableCell 型态对象的对象变量,然后再利用集合对象的Item 方法将集合中Index 为0 的内存地址取出,并指定给变量TmpCell;所以我们就可以透过TmpCell 变量来控制HtmlTableCell 对象。我们将这个观念做个简单的验证:

Dim Cell As HtmlTableCell = New HtmlTableCell
Dim Row As HtmlTableRow = New HtmlTableRow
Dim TmpCell As HtmlTableCell
Cell.InnerText="Cell1"
Row.Cells.Add(Cell)
Cell = New HtmlTableCell
Cell.InnerText="Cell2"
Row.Cells.Add(Cell)
TmpCell = Row.Cells.Item(0) '传回Index 为0 所记载的内存地址
Response.Write(TmpCell.InnerText) '印出"Cell1"
TmpCell = Row.Cells.Item(1) '传回Index 为1 所记载的内存地址
Response.Write(TmpCell.InnerText) '印出"Cell2"


    上述程序执行结果印出"Cell1"及"Cell2",验证了集合对象可以管理对象的内存地址,并可以利用Item 方法将内存地址取出。

HtmlTable、HtmlTableRow、HtmlTableCell 控件
    HtmlTable 控件可以配合HtmlTableRow 以及HtmlTableCell 控件来动态的产生表格。其关系为:

    HtmlTable 控件是由许多列(Row)所组成,而每一列中是由许多储存格(Cell)所组成。所以HtmlTable 控件中有Rows 集合,HtmlTableRow 控件中有Cells 集合。我们依秩序利用HtmlTableRow 中Cells 集合的Add 方法,将HtmlTableCell 控件串成一列(Row)后,再将这一列加到HtmlTable 的Rows 集合中,这样一来表格就大功告成了。这些组成表格的控件都可以设定一些外观属性,我们先来看看HtmlTableCell 控件的语法:

<Td 或Th
Id="被程序代码所控制的名称"
Runat="Server"
Align="Left | Center | Right"
BGColor="背景色"
BorderClolr="边框颜色"
ColSpan="跨栏数"
Hight="表格高度"
NoWarp="True | False"
RowSpan="跨列数"
Valign="垂直对齐方式"
Width="表格宽度"
>储存格内容
</Td 或/Th>
>

    一般来说我们会利用程序来产生HtmlTableCell 对象,设定好属性之后,我们再加入HtmlTableRow 对象中的Cells 集合中。接下来我们来看看HtmlTableRow 控件的语法:

NoWarp="True | False"
RowSpan="跨列数"
Valign="垂直对齐方式"
Width="表格宽度"
>储存格内容
</Td 或/Th>
一般来说我们会利用程序来产生HtmlTableCell 对象,设定好属性之后,我们再加入
HtmlTableRow 对象中的Cells 集合中。接下来我们来看看HtmlTableRow 控件的语法:
<Tr
Id="被程序代码所控制的名称"
Runat="Server"
Align="Left | Center | Right"
BGColor="背景色"
BorderClolr="边框颜色"
Hight="表格高度"
Cells="Cell 集合"
Valign="垂直对齐方式"
>
<Td>字段内容</Td>
<Td>字段内容</Td>
</Tr>

    利用程序来产生HtmlTableCell 对象后,我们再加入HtmlTableRow 对象中的Cells 集合中。等表格的一列定义好之后,再利用HtmlTable 对象的Rows 集合,将表格的列加入集合中。我们来看看HtmlTable 控件的语法:

<Table
Id="被程序代码所控制的名称"
Runat="Server"
Align="Left | Center | Right"
BGColor="背景色"
BorderClolr="边框颜色"
CellPadding="像素"
CellSpacing="像素"
Hight="表格高度"
Rows="Row 集合"
Width="表格宽度"
>
<Tr><Td><Td></Tr>
<Tr><Td><Td></Tr>
</Table>


使用范例:
下列范例利用表格控件印出九九表:

<Html>
<Table Id="Table1" Runat="Server" Border="1"/>
<Form Runat="Server">
<Button Id="Button1" Runat="Server" OnServerClick="Button1_Click"
InnerText="请按我"/>
</Form >
<Script Language="VB" Runat="Server" ID=Script1>
Sub Button1_Click(Sender As Object, e As EventArgs)
Dim Cell As HtmlTableCell
Dim Row As HtmlTableRow
Dim X, Y As Short
For X=1 To 9 Step 1
Cell=New HtmlTableCell
For Y=1 To 9 Step 1
Cell.InnerHtml+=CStr(X) & " * " & CStr(Y) & " = " & CStr(X * Y)
If Y<>9 Then Cell.InnerHtml+="<br>"
Next Y
If X=1 Or X=4 Or X=7 Then Row=New HtmlTableRow
Row.Cells.Add(Cell)
If X=3 Or X=6 Or X=7 Then Table1.Rows.Add(Row)
Next X
End Sub
</SCRIPT>
</Html>

 
 
  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·DataSetCommand 对象读取以及更新  (2005-04-02)
 ·DataSet 对象与DataSetCommand 对  (2005-04-02)
 ·样式对象(Style Object)  (2005-04-02)
 ·Calendar Web 控件的样式对象  (2005-04-02)
 ·系结至集合对象  (2005-04-02)
 ·设定Session 对象变量的有效期限  (2005-04-02)
 ·取得Application 对象变量内容的  (2005-04-02)
 ·常见的例外对象  (2005-04-02)
 ·JSP的内部对象  (2005-04-02)
 ·J2EE会话外观模式与值对象  (2005-04-02)

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·放眼未来 帝国近期将有重大举措!
·PHPWind6.3.2版通行证发布
·帝国备份王2008版正式发布
·帝国备份王2008版发布
·phpcms2007转帝国CMS5.0程序发布
·dedecms5.1转帝国CMS5.0程序发布
·帝国网站管理系统V5.0商业购买说明
   类别最新
·ASP.NET中为DataGrid添加合计字段
·.text urlRewrite介绍
·利用 ASP.NET 的内置功能抵御 Web
·ASP.NET Cache
·用 WebClient.UploadData 方法 上载
·ASP.NET 程序设计-序
·什么是客户端/伺服端(Client/Serve
·因特网应用程序的开发
·网页的种类
·.NET Framework-Microsoft Visual
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统