asp:Wizard inside of a asp:FormView breaks two-way databinding



I posted this yesterday with a different email address. I am reposting with
my fake-address as given to me by Microsoft so that I can be guraranteed a
response from a support representative. Sorry for the repost.

I'd like to make use of the asp:Wizard control to present a step-by-step
guided experience for my user to fill out a complicated data-entry form.

I'd like to make use of two-way databinding provided by the asp:FormView
control to drasticly reduce the number of lines of code I need to write.

But when I combine those two controls, databinding breaks. Please see the
example below. The database in this example is a simple access database with
a single table My real life example is way to complicated to describe here,
but this simple case reproduces the problem.

If you run through the wizard, clicking Finish causes a record to be
inserted with null values in all the fields. What I don't show here, is if
you strip out the wizard control, everything works fine.

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>

<script runat="server">

protected void Wizard1_FinishButtonClick(object sender,
WizardNavigationEventArgs e)

{

FormView1.InsertItem(true);

}

</script>

<html xmlns="http://www.w3.org/1999/xhtml"; >

<head runat="server">

<title>Untitled Page</title>

</head>

<body>

<form id="form1" runat="server">

<div>

<asp:AccessDataSource ID="AccessDataSource1" runat="server"
DataFile="~/App_Data/db1.mdb"

InsertCommand="INSERT INTO [Thing] ([Step1Data], [Step2Data], [Step3Data],
[Step4Data]) VALUES (?, ?, ?, ?)"

SelectCommand="SELECT * FROM [Thing]">

<InsertParameters>

<asp:Parameter Name="Step1Data" Type="String" />

<asp:Parameter Name="Step2Data" Type="String" />

<asp:Parameter Name="Step3Data" Type="String" />

<asp:Parameter Name="Step4Data" Type="String" />

</InsertParameters>

</asp:AccessDataSource>

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="ThingID"

DataSourceID="AccessDataSource1">

<Columns>

<asp:BoundField DataField="ThingID" HeaderText="ThingID"
InsertVisible="False" ReadOnly="True"

SortExpression="ThingID" />

<asp:BoundField DataField="Step1Data" HeaderText="Step1Data"
SortExpression="Step1Data" />

<asp:BoundField DataField="Step2Data" HeaderText="Step2Data"
SortExpression="Step2Data" />

<asp:BoundField DataField="Step3Data" HeaderText="Step3Data"
SortExpression="Step3Data" />

<asp:BoundField DataField="Step4Data" HeaderText="Step4Data"
SortExpression="Step4Data" />

</Columns>

</asp:GridView>

<asp:FormView ID="FormView1" runat="server" DataSourceID="AccessDataSource1"
DataKeyNames="ThingID" DefaultMode="Insert">

<InsertItemTemplate>

<asp:Wizard ID="Wizard1" runat="server" ActiveStepIndex="0"
OnFinishButtonClick="Wizard1_FinishButtonClick">

<WizardSteps>

<asp:WizardStep ID="WizardStep1" runat="server" Title="Step 1">Step1Data:

<asp:TextBox ID="Step1DataTextBox" runat="server" Text='<%#
Bind("Step1Data") %>'></asp:TextBox><br />

</asp:WizardStep>

<asp:WizardStep ID="WizardStep2" runat="server" Title="Step 2">Step2Data:

<asp:TextBox ID="Step2DataTextBox" runat="server" Text='<%#
Bind("Step2Data") %>'></asp:TextBox><br />

</asp:WizardStep>

<asp:WizardStep ID="WizardStep3" runat="server" Title="Step 3">Step3Data:

<asp:TextBox ID="Step3DataTextBox" runat="server" Text='<%#
Bind("Step3Data") %>'></asp:TextBox><br />

</asp:WizardStep>

<asp:WizardStep ID="WizardStep4" runat="server" Title="Step 4">Step4Data:

<asp:TextBox ID="Step4DataTextBox" runat="server" Text='<%#
Bind("Step4Data") %>'></asp:TextBox><br />

</asp:WizardStep>

</WizardSteps>

</asp:Wizard>

&nbsp;&nbsp;

</InsertItemTemplate>

</asp:FormView>

</div>

</form>

</body>

</html>




.