【发布时间】: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>
</td>
<td> </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>
</td>
<td> </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> </td>
<td>
<asp:Label ID="LblOrderComplete" runat="server"></asp:Label>
</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>
<asp:Label ID="LblOrderNumberAgain" runat="server"></asp:Label>
</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>
<asp:Label ID="LblOrderTimeAgain" runat="server"></asp:Label>
</td>
<td> </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 更新都将在其自身上进行,而不是在View或MultiView上。 -
@ethorn10 好的。那么如何使用我的更新面板(因为我需要它来更新控件)和多视图 @ 同时?
标签: c# asp.net c#-4.0 multiview