C#多视图持久化数据

C#多视图持久化数据,c#,multiview,C#,Multiview,我目前在web窗体用户控件页中使用多视图控件,在视图之间导航,我们的数据不会持久 三视图,最后一个视图包含在前两个视图中输入的内容的摘要,如果我点击到摘要视图,则显示秒视图中的数据可用 在视图之间来回单击,表单数据丢失 你知道从哪里开始吗 .ascx第页 <asp:MultiView ID="MultiView1" ActiveViewIndex="0" EnableViewState="true" runat="server"> <asp:View ID="V

我目前在web窗体用户控件页中使用多视图控件,在视图之间导航,我们的数据不会持久

三视图,最后一个视图包含在前两个视图中输入的内容的摘要,如果我点击到摘要视图,则显示秒视图中的数据可用

在视图之间来回单击,表单数据丢失

你知道从哪里开始吗

.ascx第页

    <asp:MultiView ID="MultiView1" ActiveViewIndex="0" EnableViewState="true" runat="server">
    <asp:View ID="View1" runat="server">
        Name:<br />
        <asp:TextBox ID="txtName" runat="server" />
    </asp:View>
    <asp:View ID="View2" runat="server">
        Surname:<br />
        <asp:TextBox ID="txtSurname" runat="server" />
    </asp:View>
    <asp:View ID="View3" runat="server">
        <b>Summary</b><br />
        Name:
        <asp:Label ID="lblName" runat="server" /><br />
        Surname:
        <asp:Label ID="lblSurname" runat="server" /><br />
    </asp:View>
</asp:MultiView>
<asp:Button ID="btnBack" runat="server" Text="&lt; Back " OnClick="btnBack_Click" />
<asp:Button ID="btnNext" runat="server" Text="Next &gt;" OnClick="btnNext_Click" />
<asp:Button ID="btnSend" runat="server" Text="Submit" OnClick="btnSend_Click" />

名称:
姓氏:
摘要
姓名:
姓:
ascx.cs代码隐藏

    protected void btnBack_Click(object sender, EventArgs e)
    {
        MultiView1.ActiveViewIndex--;
    }
    protected void btnNext_Click(object sender, EventArgs e)
    {
        MultiView1.ActiveViewIndex++;
    }
    protected void btnSend_Click(object sender, EventArgs e)
    {
    }
    protected override void OnPreRender(EventArgs e)
    {
        if (MultiView1.ActiveViewIndex == MultiView1.Views.Count - 1)
        {
            FillSummary();
        }
        btnBack.Visible = MultiView1.ActiveViewIndex > 0;
        btnNext.Visible = MultiView1.ActiveViewIndex < MultiView1.Views.Count - 1;
        btnSend.Visible = MultiView1.ActiveViewIndex == MultiView1.Views.Count - 1;
        base.OnPreRender(e);
    }
    private void FillSummary()
    {
        lblName.Text = txtName.Text;
        lblSurname.Text = txtSurname.Text;
    }
protectedvoidbtnback\u单击(对象发送方,事件参数e)
{
MultiView1.ActiveViewIndex--;
}
受保护的void btnNext_单击(对象发送方,事件参数e)
{
MultiView1.ActiveViewIndex++;
}
受保护的无效BTN发送\单击(对象发送方,事件参数e)
{
}
受保护的覆盖无效OnPreRender(EventArgs e)
{
if(MultiView1.ActiveViewIndex==MultiView1.Views.Count-1)
{
FillSummary();
}
btnBack.Visible=MultiView1.ActiveViewIndex>0;
btnNext.Visible=MultiView1.ActiveViewIndex
(1)是否确实在多视图的所有父元素中启用了ViewState?(2) 如果调试(在
OnPreRender
中设置断点,并检查
lblName.Text
txtName.Text
lblSurname.Text
txtName.Text
Hi@peter
EnableViewState=“true”的值),行为是否会改变
multiview
控件上启用,因此所有子文本框都应继承viewstate。我在
OnPreRender
中设置了断点,
lblName.Text
保持为空,但是
lblSurname.Text
等于在姓氏文本框中键入的任何字符串所述变量的值是什么在第一次单击“下一步”后,当第二个输入表单加载时?@grek40为空/空。在第一个文本框中,我插入“John”,单击“下一步”,输入“Doe”在“姓氏”文本框中,单击“下一步”进入摘要,只读取姓氏值。由于某些原因,这些值不会持续存在,而在摘要页面上,单击“上一步”按钮,姓氏文本框值“Doe”将被删除。请仔细阅读我的问题。我插入“John”,单击下一步-现在应该使用调试器进行查看,而不是在第二次单击“下一步”之后。