我无法弄清楚如何将表格数据从向导步骤控制传递到新页面。我几天前发布了THIS POST,但这里的答案并没有真正帮助我,因为我甚至无法从新页面上的TextBox中获取值。
我尝试将隐藏字段的内容放在<asp:TextBox ID="amount" runat="server" Text="tester"></asp:TextBox>
,但Request.Form["amount"]
仍为空。
如何将表单数据从向导步骤控件传递到新页面?这应该真的那么难吗?
答案 0 :(得分:2)
我们在向导中收集的信息通常会转换为业务对象,然后我们只在Session变量中传递该对象。这样我们就可以在任何页面上访问它。
答案 1 :(得分:1)
会话变量似乎更容易使用:
Default.aspx标记:
<asp:Wizard runat="server" ID="wizAwesome" FinishDestinationPageUrl="~/TestPage.aspx" OnFinishButtonClick="wizAwesome_FinishButtonClick">
<WizardSteps>
<asp:WizardStep ID="stepRock" runat="server" Title="Rock!">
This is a wizard step.
<asp:HiddenField runat="server" ID="hiddenName" Value="Juliet" />
</asp:WizardStep>
</WizardSteps>
</asp:Wizard>
Default.aspx.cs
protected void wizAwesome_FinishButtonClick(object sender, WizardNavigationEventArgs e)
{
Session["hiddenName"] = hiddenName.Value;
}
TestPage.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
lblName.Text = Session["hiddenName"].ToString();
}
答案 2 :(得分:0)
您的HiddenField需要位于向导之外,如下所示,您需要添加一个FinishNavigationTemplate,将数据发布到您的新页面
<asp:Wizard runat="server" ID="wzd_Amount">
<WizardSteps>
<asp:WizardStep ID="step_Amount" runat="server">
This is a wizard step.
</asp:WizardStep>
</WizardSteps>
<FinishNavigationTemplate>
<asp:Button runat="server" ID="btn_Finish" PostBackUrl="~/Labs/TestPage.aspx" />
</FinishNavigationTemplate>
</asp:Wizard>
<asp:HiddenField runat="server" ID="hdf_Amount" Value="Test" />
在另一页上,您可以像这样请求数据
lbl_Test.Text = Request["hdf_Amount"];