首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

7.5  MultiView与View控件

MultiView控件是View控件的容器,因此两者多半一起搭配运作。在MultiView控件中可以拖曳多个View控件,而View控件内才是存放一般ASP.NET服务器控件的,如Image、TextBox等;而虽然MultiView中可包含多个View控件,但在同一时间点只能显示一个View控件,因此也只有一个View控件区域会被显示。MultiView通过ActiveViewIndex属性值(默认值为-1)来决定哪个View要被显示,倘若您要显示第一个View控件则将MultiView的Active- ViewIndex属性值设定为0,若想显示第二个则将ActiveViewIndex属性值设置为1,以此类推,而程序也是利用ActiveViewIndex属性设置来切换不同的View(见图7-11)。

图7-11  MultiView与View控件关系图

 范例7-7  使用MultiView与View控件显示图片

本范例将利用MultiView与View控件显示图片,请参考MultiViewControl.aspx程序,步骤说明如下:

  创建RadioButtonList控件

请加入一个Label及RadioButtonList控件,将Label控件的Text属性改为“请选择车种:”,而RadioButtonList控件加入四个Itmes项目(见图7-12),具体设置如下。

l   项目0:设置Text属性为“Benz”,Value属性为“0”。

l   项目1:设置Text属性为“BMW”,Value属性为“1”。

l   项目2:设置Text属性为“Jaguar”,Value属性为“2”。

l   项目3:设置Text属性为“全部车种”,Value属性为“3”。

图7-12  RadioButtonList控件Item项目

最后将AutoPostBack属性设为True,RepeatDirection设为Horizontal。

  创建MultiView控件

请拖曳一个MultiView控件到Page页面。

  创建View控件

接着请拖曳4个View控件到MultiView控件中,且依序将4个View控件的ID改为viewBenz、viewBMW、viewJaguar、viewAllCars(见图7-13)。

图7-13  创建MultiView及View控件

  创建Image控件

现在则要在View中加入Image控件:

l   请在viewBenz中加入一个Image控件,并指定其ImageUrl为“~/Images/BENZ.jpg”。

l   请在viewBMW中加入一个Image控件,并指定其ImageUrl为“~/Images/BMW.jpg”。

l   请在viewJaguar中加入一个Image控件,并指定其ImageUrl为“~/Images/Jaguar.jpg”。

l   请在viewJaguar中加入三个Image控件,并分别指定其ImageUrl为“~/Images/BENZ.jpg”、“~/Images/BMW.jpg”、“~/Images/Jaguar.jpg”。

设置完成后HTML程序代码如下:

<%@ Page Language="VB" AutoEventWireup="true" CodeFile="MultiViewControl.aspx.vb" Inherits="MultiViewControl" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>未命名页面</title>

</head>

<body>

    <form id="form1" runat="server">

        <asp:Label ID="txtSelect" runat="server" Text="请选择车种:">

         </asp:Label>

        <br />

        <asp:RadioButtonList ID="rdoCar" runat="server" RepeatDirection=

         "Horizontal" AutoPostBack="True" OnSelectedIndexChanged=

         "rdoCar_SelectedIndexChanged">

            <asp:ListItem Value="0">Benz</asp:ListItem>

            <asp:ListItem Value="1">BMW</asp:ListItem>

            <asp:ListItem Value="2">Jaguar</asp:ListItem>

            <asp:ListItem Value="3">全部车种</asp:ListItem>

        </asp:RadioButtonList><asp:MultiView ID="MultiView1" runat="server">

            <asp:View ID="viewBenz" runat="server">

                <asp:Image ID="Image1" runat="server" ImageUrl="~/Images/

                 BENZ240.jpg" /></asp:View>

            <asp:View ID="viewBMW" runat="server">

                <asp:Image ID="Image2" runat="server" ImageUrl="~/Images/

                 BMW330.jpg" /></asp:View>

            <asp:View ID="viewJaguar" runat="server">

                <asp:Image ID="Image3" runat="server" ImageUrl="~/Images/

                 JaguarSTypeR.jpg" /></asp:View>

            <asp:View ID="viewAllCars" runat="server">

                <asp:Image ID="Image4" runat="server" ImageUrl="~/Images/

                 BENZ240.jpg" />

                <asp:Image ID="Image5" runat="server" ImageUrl="~/Images/

                 BMW330.jpg" />

                <asp:Image ID="Image6" runat="server" ImageUrl="~/Images/

                 JaguarSTypeR.jpg" /></asp:View>

        </asp:MultiView>

    </form>

</body>

</html>

  创建切换View的程序

其实View切换的程序代码才是关键点,因此,请在MultiView、View及Image控件配置正确后,在RadioButtonList控件的SelectedIndexChanged事件中加入下列程序代码:

01   'View切换程序代码

02   Protected Sub rdoCar_SelectedIndexChanged(ByVal sender As Object, ByVal   
       e As System.EventArgs) Handles rdoCar.SelectedIndexChanged

       For I As Integer = 0 To rdoCar.Items.Count - 1

03          If rdoCar.Items(I).Selected Then

04              MultiView1.ActiveViewIndex = CType(rdoCar.Items(I).Value,
                  Int16)

05          End If

06      Next

07   End Sub

程序说明:

这段程序的重点就是通过选择到RadioButtonList中第几个项目值,再将此项目值指定给MultiView的ActiveViewIndex属性,若ActiveView Index为0,则显示第一个View;若为1则显示第二个View,只有作用中的View会被显示,其他View都会隐藏起来(见图7-14)。

图7-14  MultiView控件执行画面

 范例7-8  MultiView结合Menu控件

上一个例子是使用RadioButtonList控件来达成View切换的,在此您也可以结合Menu控件来达成另一个切换的风格。请参考MultiView Menu.aspx程序,步骤说明如下:

  创建MultiView及View控件

请直接Copy上一个范例的MultiView及其中的View到MultiView Menu.aspx程序中。

  创建Menu控件

请拖曳一个Menu控件到MultiView控件的上方,将其Orientation属性改为“Horizontal”,并点击Menu控件智能滚动条中的“编辑功能项目”,并加入4个项目:

l   请将第一个项目的Text属性设为“Benz”,Value设为“0”。

l   请将第一个项目的Text属性设为“BMW”,Value设为“1”。

l   请将第一个项目的Text属性设为“Jaguar”,Value设为“2”。

l   请将第一个项目的Text属性设为“全部车种”,Value设为“3”。

  添加Menu控件的MenuItemClick事件

最后只要添加Menu控件的MenuItemClick事件,确定要显示哪一个View控件内容即可,程序代码如下(见图7-15和图7-16):

01  'MenuItem的Click事件

02  Protected Sub menuCar_MenuItemClick(ByVal sender As Object, ByVal e As    

        System.Web.UI.WebControls.MenuEventArgs) Handles menuCar.MenuItemClick

03      MultiView1.ActiveViewIndex = CType(menuCar.SelectedValue, Int16)

04  End Sub

图7-15  MultiView结合Menu控件

图7-16  MultiView结合Menu控件执行画面

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论