帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > 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编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·DiscuzX2.5会员整合通行证发布
·帝国CMS 7.0版本功能建议收集
·帝国网站管理系统2012年授权购买说
·PHPWind8.7会员整合通行证发布
·[官方插件]帝国CMS-访问统计插件
·[官方插件]帝国CMS-sitemap插件
·[官方插件]帝国CMS内容页评论AJAX分
   类别最新
·ASP.NET中为DataGrid添加合计字段
·.text urlRewrite介绍
·利用 ASP.NET 的内置功能抵御 Web
·ASP.NET Cache
·用 WebClient.UploadData 方法 上载
·ASP.NET 程序设计-序
·什么是客户端/伺服端(Client/Serve
·因特网应用程序的开发
·网页的种类
·.NET Framework-Microsoft Visual
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统