asp.net中MultiView和View


小例子

.aspx代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="2_MultiView.aspx.cs" Inherits="_2_MultiView" %>

<!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">
    <div>
    <h2>Multiview & View 应用程序</h2>
    <p>MV可以看成是一个大容器,V是多个互斥的小容器,只能显示其中1个</p>
    <hr />


        <asp:MultiView ID="mv1" runat="server" ActiveViewIndex="0">
            <asp:View ID="V_Q1" runat="server">
                您有手机么?<asp:RadioButtonList ID="rbl_1" runat="server" 
                    AutoPostBack="True" 
                    onselectedindexchanged="RadioButtonList1_SelectedIndexChanged">
                    <asp:ListItem Value="1">有</asp:ListItem>
                    <asp:ListItem Value="0">没有</asp:ListItem>
                </asp:RadioButtonList>
            </asp:View>


            <asp:View ID="V_no" runat="server">
            <p>那就买一个吧!</p>
                <asp:Button ID="Button1" runat="server" Text="OK!" onclick="Button1_Click" />
                <asp:Button ID="Button3" runat="server" Text="NO,Thanks!" 
                    onclick="Button3_Click"  />

            </asp:View>

            <asp:View ID="V_Q2" runat="server">
            <p>选择手机的品牌:<asp:RadioButtonList ID="RadioButtonList1" runat="server" 
                    CellPadding="2" CellSpacing="2" RepeatDirection="Horizontal" 
                    AutoPostBack="True" 
                    onselectedindexchanged="RadioButtonList1_SelectedIndexChanged1">
                <asp:ListItem>NOKIA</asp:ListItem>
                <asp:ListItem>SAMSUM</asp:ListItem>
                <asp:ListItem>HTC</asp:ListItem>
                <asp:ListItem>APPLE</asp:ListItem>
                <asp:ListItem>其他</asp:ListItem>
                </asp:RadioButtonList>
                </p>
            </asp:View>
            <asp:View ID="V_DONE" runat="server">
            <p style="font-size:18px; color:green; text-align:center;">谢谢参与!<br /><br />
                <asp:Button ID="Button2" runat="server" Text="再来一次" onclick="Button2_Click" /></p>
            </asp:View>
        </asp:MultiView>
    </div>
    </form>
</body>
</html>



.aspx.cs代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _2_MultiView : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

        
    }
    protected void RadioButtonList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        string s_havePhone = rbl_1.SelectedValue;

        switch (s_havePhone) { 
            case "0": //没有手机
                mv1.SetActiveView(V_no);
                break;

            case "1": //有手机
                mv1.SetActiveView(V_Q2);
                break;
        }

    }
    protected void RadioButtonList1_SelectedIndexChanged1(object sender, EventArgs e)
    {
        mv1.SetActiveView(V_DONE);
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        mv1.SetActiveView(V_Q2);
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        Response.Redirect("2_Multiview.aspx");

        //请自己验证为何不用SetActiveView实现
        //mv1.SetActiveView(V_Q1);
    }
    protected void Button3_Click(object sender, EventArgs e)
    {
        mv1.SetActiveView(V_DONE);
    }
}



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。