【问题标题】:Can't get multiview control to change views无法获得多视图控制来更改视图
【发布时间】:2015-02-19 00:20:26
【问题描述】:

我有一个多视图控件,它有两个视图。 View1 是默认视图,View2 是新视图。当最终用户单击按钮时,我想将视图更改为 View2。无论如何,我似乎无法做到这一点。

ASP.NET 代码:

<asp:MultiView ID="MVOrder" runat="server">
    <asp:View ID="VOrderNow" runat="server">
        <asp:UpdatePanel ID="UpdatePanel2" runat="server">
            <ContentTemplate>
                <table>
                    <tr>
                        <td>
                        <asp:Label ID="LblInfo" runat="server"></asp:Label>
                        </td>
                        <td>
                        &nbsp;</td>
                        <td>&nbsp;</td>
                    </tr>
                    <tr>
                        <td>
                        <asp:Label ID="LblDrink" runat="server"></asp:Label>
                        </td>
                        <td></td>
                        <td></td>
                    </tr>
                    <tr>
                        <td>
                        <asp:Label ID="LblItemInfo" runat="server"></asp:Label>
                        </td>
                        <td>
                        &nbsp;</td>
                        <td>&nbsp;</td>
                    </tr>
                </table>
                <br />
                <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
            </ContentTemplate>
        </asp:UpdatePanel>
    </asp:View>
    <asp:View runat="server" ID="VOrderComplete">

    <table class="auto-style1">
        <tr>
            <td>&nbsp;</td>
            <td>
            <asp:Label ID="LblOrderComplete" runat="server"></asp:Label>
            </td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td>
            <asp:Label ID="LblOrderNumberAgain" runat="server"></asp:Label>
            </td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td>
            <asp:Label ID="LblOrderTimeAgain" runat="server"></asp:Label>
            </td>
            <td>&nbsp;</td>
        </tr>
    </table>

    </asp:View>
<br/>
</asp:MultiView>

按钮点击事件代码:

protected void Button1_Click(object sender, EventArgs e)
        {
            //MVOrder.ActiveViewIndex = 1;
            MVOrder.SetActiveView(VOrderComplete);
        } 

页面加载代码:

if (!IsPostBack)
{
    MVOrder.SetActiveView(VOrderNow);
}

谁能告诉我我做错了什么?

【问题讨论】:

  • 您是否遇到任何错误?
  • @ethorn10 不,没有错误。看起来页面刷新了,但视图没有改变
  • 我很确定,按照你的结构方式,你将无法做你想做的事。 UpdatePanel 正在执行异步调用,因此任何 UI 更新都将在其自身上进行,而不是在 ViewMultiView 上。
  • @ethorn10 好的。那么如何使用我的更新面板(因为我需要它来更新控件)和多视图 @ 同时?

标签: c# asp.net c#-4.0 multiview


【解决方案1】:

我认为您可能有一些额外的代码可能会使其无法正常工作。但根据您显示的内容,这将发布并更新您的视图:

<asp:UpdatePanel ID="UpdatePanel2" runat="server">
    <ContentTemplate>
        <asp:MultiView ID="MVOrder" runat="server">
            <asp:View ID="VOrderNow" runat="server">
                <table>
                    <tr>
                        <td><asp:Label ID="LblInfo" runat="server" Text="asdfasdfasdf"></asp:Label></td>
                        <td>&nbsp;</td>
                        <td>&nbsp;</td>
                    </tr>
                    <tr>
                        <td><asp:Label ID="LblDrink" runat="server" Text="lmnoplmnop"></asp:Label></td>
                        <td></td>
                        <td></td>
                    </tr>
                    <tr>
                        <td><asp:Label ID="LblItemInfo" runat="server" Text="iteminfo"></asp:Label></td>
                        <td>&nbsp;</td>
                        <td>&nbsp;</td>
                    </tr>
                </table>
                <br />
                <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
            </asp:View>
            <asp:View runat="server" ID="VOrderComplete">
                <table class="auto-style1">
                    <tr>
                        <td>&nbsp;</td>
                        <td><asp:Label ID="LblOrderComplete" runat="server" Text="ordercomplete"></asp:Label></td>
                        <td>&nbsp;</td>
                    </tr>
                    <tr>
                        <td>&nbsp;</td>
                        <td><asp:Label ID="LblOrderNumberAgain" runat="server" Text="ordernumberagain"></asp:Label></td>
                        <td>&nbsp;</td>
                    </tr>
                    <tr>
                        <td>&nbsp;</td>
                        <td><asp:Label ID="LblOrderTimeAgain" runat="server" Text="ordertimeagain"></asp:Label></td>
                        <td>&nbsp;</td>
                    </tr>
                </table>
            </asp:View>
            <br />
        </asp:MultiView>
    </ContentTemplate>
</asp:UpdatePanel>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多