いくつかのテキストボックスとドロップダウンリストを備えたBulkEditGridViewがあります。BulkEditGridViewのレコードを更新しようとすると、Updateparameter "Unit"に期待値が含まれていないため、失敗します。同じ名前のDataFieldプロパティを持つboundfieldの値が含まれていることを期待していました。あれは正しいですか?
実際、「hiddenUnit」バウンドフィールドは、「DropDownUnit」フィールドの選択された値をパラメーターとして使用する方法がわからなかったためにのみ存在します。それを行う簡単な方法はありますか?
お分かりのように、私はこれの初心者ですので、どんな助けでも深く感謝します。
SqlDataSource:
<asp:SqlDataSource ID="SqlMealItems" runat="server" ConnectionString="<%$ ConnectionStrings:Kunskapshjulet %>"
SelectCommand="SELECT MealItems.ProductId,[Quantity], [Unit], [ProductName], [ItemId] FROM [MealItems]
INNER JOIN Products ON
Products.ProductID = MealItems.ProductId
WHERE ([UserId] = @UserId)"
UpdateCommand="UPDATE [MealItems] SET [Quantity] = @Quantity, [Unit] = @Unit WHERE UserId = @UserId" >
<InsertParameters>
<asp:Parameter Name="Quantity" Type="Int32" />
<asp:Parameter Name="Unit" Type="Double" />
<asp:Parameter Name="ProductId" Type="Int32" />
<asp:Parameter Name="ItemId" Type="String" />
</InsertParameters>
<SelectParameters>
<asp:SessionParameter Name="UserId" SessionField="userID" Type="String" />
</SelectParameters>
<UpdateParameters>
<asp:SessionParameter Name="UserId" SessionField="userID" Type="String" />
<asp:Parameter Name="Quantity" Type="Int32" />
<asp:Parameter Name="Unit" />
</UpdateParameters>
BulkEditGridView
<rwg:BulkEditGridView ID="MealList" runat="server" AutoGenerateColumns="False" ShowFooter="True" GridLines="Vertical" CellPadding="4"
BackColor="White" DataKeyNames="ItemId,ProductId" SaveButtonID="SaveButton"
DataSourceID="SqlMealItems" OnRowUpdate="MealList_RowUpdating"
OnRowDataBound="MealList_RowDataBound" CssClass="gridView">
<AlternatingRowStyle CssClass="MealListItemAlt" BackColor="#a6dbed" />
<Columns>
<asp:BoundField DataField="ProductId" HeaderText="Prod #" ReadOnly="True" />
<asp:BoundField DataField="ProductName" HeaderText="Namn" ReadOnly="True" />
<asp:BoundField DataField="Quantity" HeaderText="Antal" />
<asp:TemplateField HeaderText="Enhet">
<ItemTemplate>
<asp:DropDownList ID="DropDownUnit" OnSelectedIndexChanged="DropDownUnit_SelectedIndexChanged"
AutoPostBack="True" runat="server" DataTextField="Unit" DataValueField="Unit">
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="á pris" ReadOnly="True" ControlStyle-Width="60" ControlStyle-CssClass="rightAlign" ControlStyle-BorderWidth="1" ControlStyle-BorderColor="#CCCCCC" >
<ControlStyle BorderColor="#CCCCCC" BorderWidth="1px" CssClass="rightAlign" Width="60px"></ControlStyle>
</asp:BoundField>
<asp:TemplateField HeaderText="Totalt">
<ItemTemplate>
<asp:TextBox ID="tbTotalPrice" runat = server ReadOnly="true" Width="60" style="text-align:right" BorderWidth="1" BorderColor="#CCCCCC">
</asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Unit" HeaderText="hiddenUnit" ReadOnly="True" Visible="True" />
</Columns>
</rwg:BulkEditGridView>