Asp.net 简明教程

ASP.NET - Multi Views

MultiView 和 View 控件允许您将页面的内容划分为不同的组,一次仅显示一组。每个 View 控件管理一组内容,并且所有 View 控件都保存在 MultiView 控件中。

MultiView 控件负责一次显示一个 View 控件。显示的 View 称为活动视图。

MultiView 控件的语法为:

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

View 控件的语法为:

<asp:View ID= "View1" runat= "server">
</asp:View>

但是,View 控件无法独立存在。如果您尝试独立使用它,它将呈现错误。它始终与 MultiView 控件配合使用,如下所示:

<asp:MultView ID= "MultiView1" runat= "server">
   <asp:View ID= "View1" runat= "server"> </asp:View>
</asp:MultiView>

Properties of View and MultiView Controls

View 和 MultiView 控件都派生自 Control 类,并且继承其所有属性、方法和事件。View 控件最重要的属性是布尔类型 Visible 属性,它设置视图的可见性。

MultiView 控件具有以下重要属性:

Properties

Description

Views

MultiView 中的视图控件集合。

ActiveViewIndex

表示活动视图的从零开始的索引。如果没有活动视图,则索引为 -1。

与 MultiView 控件导航相关的按钮控件的 CommandName 属性与 MultiView 控件的一些相关字段相关联。

例如,如果具有 CommandName 值为 NextView 的按钮控件与多视图导航相关联,则单击该按钮时会自动导航到下一个视图。

下表显示了上述属性的默认命令名:

Properties

Description

NextViewCommandName

NextView

PreviousViewCommandName

PrevView

SwitchViewByIDCommandName

SwitchViewByID

SwitchViewByIndexCommandName

SwitchViewByIndex

多视图控件的重要方法有:

Methods

Description

SetActiveview

Sets the active view

GetActiveview

Retrieves the active view

每次更改视图时,页面都会回发到服务器,并会引发许多事件。一些重要事件:

Events

Description

ActiveViewChanged

当视图发生更改时引发

Activate

由活动视图引发

Deactivate

由非活动视图引发

除了上述属性、方法和事件之外,多视图控件还继承了控件和对象类的成员。

Example

示例页有三个视图。每个视图都有两个按钮,用于在视图中导航。

内容文件代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="multiviewdemo._Default" %>

<!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>
         Untitled Page
      </title>
   </head>

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

         <div>
            <h2>MultiView and View Controls</h2>

            <asp:DropDownList ID="DropDownList1" runat="server" onselectedindexchanged="DropDownList1_SelectedIndexChanged">
            </asp:DropDownList>

            <hr />

            <asp:MultiView ID="MultiView1" runat="server" ActiveViewIndex="2"  onactiveviewchanged="MultiView1_ActiveViewChanged" >
               <asp:View ID="View1" runat="server">
                  <h3>This is view 1</h3>
                  <br />
                  <asp:Button CommandName="NextView" ID="btnnext1" runat="server" Text = "Go To Next" />
                  <asp:Button CommandArgument="View3" CommandName="SwitchViewByID" ID="btnlast" runat="server" Text  ="Go To Last" />
               </asp:View>

               <asp:View ID="View2" runat="server">
                  <h3>This is view 2</h3>
                  <asp:Button CommandName="NextView" ID="btnnext2" runat="server" Text = "Go To Next" />
                  <asp:Button CommandName="PrevView" ID="btnprevious2" runat="server" Text = "Go To Previous View" />
               </asp:View>

               <asp:View ID="View3" runat="server">
                  <h3> This is view 3</h3>
                  <br />
                  <asp:Calendar ID="Calender1" runat="server"></asp:Calendar>
                  <br />
                  <asp:Button  CommandArgument="0" CommandName="SwitchViewByIndex" ID="btnfirst"   runat="server" Text = "Go To Next" />
                  <asp:Button CommandName="PrevView" ID="btnprevious" runat="server" Text = "Go To Previous View" />
               </asp:View>

            </asp:MultiView>
         </div>

      </form>
   </body>
</html>

注意以下内容:

MultiView.ActiveViewIndex 确定要显示哪个视图。这是页面上唯一呈现的视图。当没有任何视图显示时,ActiveViewIndex 的默认值为 -1。由于示例中将 ActiveViewIndex 定义为 2,因此在执行时显示第三个视图。

multiview