如果您有一个复杂的表单并且需要拆分成更小的块,我会使用一个多视图控件,该控件具有完成任务所需的尽可能多的视图。如果您使用自己的控件、验证组和逻辑设计每个视图,.net 将完成其余的工作,您不必手动处理状态或保存中间步骤
<asp:MultiView ID="MultiView1" runat="server">
<asp:View ID="View1" runat="server">
<asp:TextBox ID="txt1" runat="server" />
<asp:Button ID="Button1" runat="server" Text="Next" OnClick="NextStep_Click" />
</asp:View>
<asp:View ID="View2" runat="server">
<asp:TextBox ID="txt2" runat="server" />
<asp:Button ID="Button2" runat="server" Text="End" OnClick="EndProcess_Click" />
</asp:View>
</asp:MultiView>
<asp:TextBox ID="txt3" runat="server" />
在后面的代码中
protected void NextStep_Click(object sender, EventArgs e)
{
MultiView1.SetActiveView(View2);
txt2.Text = txt1.Text;
}
protected void EndProcess_Click(object sender, EventArgs e)
{
txt3.Text = txt1.Text + " " + txt2.Text;
}
您可以来回切换您想要的时间,而不必担心用户输入的值。显然,您必须放置按钮才能返回并设置所需的活动视图。