频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

使用XML为列表控件绑定数据

来源:中国IT实验室 作者:佚名 出处:巧巧读书 2007-03-28 进入讨论组
下一页 1 2 

了解使用XML为列表控件绑定数据的各种不同的方法。

介绍

在web开发项目中,我们需要经常写一些代码从数据源读取动态数据到列表控件中。在经典ASP时期,这是一件相对比较困难的任务。例如,我们必须查询数据库,找回 RecordSet 并且在手动创建HTML标签时还要重述RecordSet。

现在在ASP.NET中,你做同样的事情有了更好的办法。此外,除了用数据库作为数据源,你还可以使用各种数据源,比如XML文件。哪一个更好呢?这会在性能、适应性、可靠性、易配置性、安全等方面引起争论。在这里,我不想讨论这些。

这篇文章讨论了几种可选择的办法了解使用XML为列表控件绑定数据的各种不同的方法。尽管我们使用ListBox  作为例子,但你可以很容易地把这种技术扩展到其他从 System.Web.UI.WebControls.ListControl 类继承而来的列表控件。它们包括CheckBoxList、 DropDownList 和 RadioButtonList。

硬编码列表框

作为开始,让我们回忆一下通常我们是怎样用HTML定义一个列表框 (ListBox)的。下面展示了一个列表框的原始代码。这是最简单的方法,且费用最少,但是缺少一些弹性来控制列表框的行为。

<select size="1" id="lstPizzaTopping">

<option value="supreme">Supreme</option>

<option value="italianclassic">Italian Classic</option>

<option value="meatlover">Meat Lover</option>

</select>

在ASP.NET中,你可以使用列表框得到同样的结果,但是具有更多性能来控制它的行为和属性。

<asp:listbox rows="1" id="lstPizzaTopping" runat="server">

<asp:listitem value="supreme">Supreme</asp:listitem>

<asp:listitem value="italianclassic">Italian Classic</asp:listitem>

<asp:listitem value="meatlover">Meat Lover</asp:listitem>

</asp:listbox>

让我们在代码中使用一点手法。除了在列表框中硬编码进去一些项,你可以使用ListItem 对象生成一些项添加到列表框控件中。ListItem 有两个参数,项的文字以及值。如果你没指定第二个参数,那项的值将跟它的文字一样。下面的代码演示了该怎么做:

<script runat="server">

Sub Page_Load(src as Object, e as EventArgs)

lstPizzaTopping.Items.Add(new ListItem("Supreme", "supreme"))

lstPizzaTopping.Items.Add(new ListItem("Italian Classic", "italianclassic"))

lstPizzaTopping.Items.Add(new ListItem("Meat Lover", "meatlover"))

</script>

...

...

<asp:listbox rows="1" id="lstPizzaTopping" runat="server" />

列表框绑定数据

事实上,ASP.NET允许你把列表框的内容跟对象绑定起来。这个对象可以是一个数组,一个集合对象,一个数据库甚至是一个XML文件。下面的例子演示了怎么把一个字符串数组绑定到列表框控件上。我们将在后面更详细地探究XML数据的绑定。

<script runat="server">

Sub Page_Load(src as Object, e as EventArgs)

Dim arrPizzaTopping as String() = _

{ "Supreme", "Italian Classic", "Meat Lover" }

lstPizzaTopping.DataSource = arrPizzaTopping

lstPizzaTopping.DataBind()

End Sub

</script>

...

...

<asp:listbox rows="1" id="lstPizzaTopping" runat="server" />

如果我们给数组添加一个新的元素会怎么样?列表框会反映出结果吗?不会的,除非你再一次使用 DataBind 方法。利用这种数据绑定技术,在什么时候什么地方更新列表框,你拥有完全的控制权。

让我们看看另外一个例子,在ASP.NET中用 ArrayList  对象绑定数据。这个 ArrayList 跟VB中的数组有点相似,但是它功能更强,它能支持更多复杂的数据类型。ArrayList d实际上是一个集合,所以我们可以把它作为一个集合。添加一个新项,我们调用 Add 方法并提供对象去 Add,在这种情况下它是一个字符串。

<script runat="server">

Sub Page_Load(src as Object, e as EventArgs)

Dim arrPizzaTopping as new ArrayList()

arrPizzaTopping.Add("Supreme")

arrPizzaTopping.Add("Italian Classic")

arrPizzaTopping.Add("Meat Lover")

lstPizzaTopping.DataSource = arrPizzaTopping

lstPizzaTopping.DataBind()

End Sub

</script>

...

...

<asp:listbox rows="1" id="lstPizzaTopping" runat="server" />

Web: http://www.qqread.com/xml-soap/u304999.html 更多文章 更多内容请看XML详解开发应用专题,或进入讨论组讨论。
下一页 1 2 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章