Ok, Now I'm sure this was working the other day and I don't think I've changed anything but now it's not working and I can't see anything wrong with the code. Basically I have a details view with product information in it, when the user clicks edit it goes into edit mode when I change any of the fields and click update it updates but with the old values. Here is my detailsview:
<
asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" Height="50px" Width="50%" CellPadding="4" ForeColor="Black" BackColor="#CCCCCC" BorderColor="#999999" BorderStyle="Solid" BorderWidth="3px" CellSpacing="2">
<Fields>
<asp:TemplateField HeaderText="Product Name">
<EditItemTemplate>
<asp:TextBox ID="ProductNameTextBox" runat="server" Text='<%# Bind("itemname") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="ProductName" runat="server" Text='<%# Bind("itemname") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Description">
<EditItemTemplate>
<asp:TextBox ID="DescriptionTextBox" runat="server" Text='<%# Bind("description") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Description" runat="server" Text='<%# Bind("description") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Price">
<EditItemTemplate><asp:TextBox ID="PriceTextBox" runat="server" Text='<%# Bind("price", "{0:c}") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Price" runat="server" Text='<%# Bind("price", "{0:c}") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Quantity">
<EditItemTemplate><asp:TextBox ID="QuantityTextBox" runat="server" Text='<%# Bind("stock") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Quantity" runat="server" Text='<%# Bind("stock") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField><asp:CommandField ShowEditButton="True"/>
</Fields>
<HeaderTemplate><%#Eval ("itemname") %>
</HeaderTemplate>
</asp:DetailsView>
And here is my VB code with the item updating function that is called when the edit button is clicked.
Protected Sub DetailsView1_ItemUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DetailsViewUpdateEventArgs) Handles DetailsView1.ItemUpdating
Dim name As TextBox = DetailsView1.FindControl("ProductNameTextBox")Dim description As TextBox = DetailsView1.FindControl("DescriptionTextBox")
Dim price As TextBox = DetailsView1.FindControl("PriceTextBox")Dim quantity As TextBox = DetailsView1.FindControl("QuantityTextBox")
Dim ItemId As Integer = DetailsView1.DataKey.ValueDim updatedName As String = name.Text
Dim updatedDescription As String = description.TextDim updatedPrice As Decimal = price.Text
Dim updatedQuantity As Integer = quantity.Textconn = New SqlConnection(strConn)cmd = New SqlCommand("UpdateProductDetails", conn)
cmd.CommandType = Data.CommandType.StoredProcedure
cmd.Parameters.Add(
"@ItemId", Data.SqlDbType.Int)cmd.Parameters("@ItemId").Value = ItemId
cmd.Parameters.Add(
"@Name", Data.SqlDbType.NVarChar, 50)cmd.Parameters("@Name").Value = updatedName
cmd.Parameters.Add(
"@Description", Data.SqlDbType.NVarChar, 255)cmd.Parameters("@Description").Value = updatedDescription
cmd.Parameters.Add(
"@Price", Data.SqlDbType.SmallMoney)cmd.Parameters("@Price").Value = updatedPrice
cmd.Parameters.Add(
"@Quantity", Data.SqlDbType.Int)cmd.Parameters("@Quantity").Value = updatedQuantity
Try
conn.Open()
cmd.ExecuteNonQuery()
Catch
Label1.Text =
"Error updating product in database!"
Finally
conn.Close()
End Try
DetailsView1.ChangeMode(DetailsViewMode.ReadOnly)
GetProductDetails()
End Sub
I tried adding a label to my asp.net page and then once updatedName had been assigned the value of the textbox I tried assigning that value to the label and it printed out the old product name not the one in the textbox. I can't see anything wrong with the code and it's driving me mad. Anyone got any ideas?
No one has replied yet! Why not be the first?
Sign in or Join us (it's free).