I have a gridview but I want to update a cell value before the update in the database but it doesn’t work
In the .aspx
file:
x
<asp:GridView ID="GV_CT" runat="server" AutoGenerateColumns="False"
DataSourceID="DS_CT" EnableViewState="False" Width="100%"
DataKeyNames="IdCT" ShowHeader="true" OnRowUpdating="GV_CT_RowUpdating">
<Columns>
<asp:BoundField DataField="qty" HeaderText="Quantity"/>
<asp:BoundField DataField="price" HeaderText="Price" DataFormatString="{0:c}"/>
<asp:CommandField ShowEditButton="true" ItemStyle-Width="75" ControlStyle-Width="30" ItemStyle-HorizontalAlign="Center" ShowCancelButton="true" EditText='<i class="fas fa-pencil"></i>' UpdateText='<i class="fas fa-check"></i>' CancelText='<i class="fas fa-times"></i>'/>
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="DS_CT" runat="server" ConnectionString="connectionstring" SelectCommand="SelectCommand" SelectCommandType="StoredProcedure" UpdateCommand="UpdateCommand" UpdateCommandType="StoredProcedure" >
<SelectParameters>
<asp:Parameter Direction="ReturnValue" Name="RETURN_VALUE" Type="Int32" />
<asp:QueryStringParameter Name="idcustomer" QueryStringField="idcustomer" Type="String" />
</SelectParameters>
<UpdateParameters>
<asp:Parameter Direction="ReturnValue" Name="RETURN_VALUE" Type="Int32" />
<asp:Parameter Name="IdCT" Type="Int32" />
<asp:Parameter Name="qty" Type="Int32" />
<asp:Parameter Name="price" Type="String" />
</UpdateParameters>
</asp:SqlDataSource>
In the .aspx.cs
file:
protected void GV_CT_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
if (e.OldValues["price"] != null)
{
// I try this
DS_Ct.UpdateParameters.Add("price", "50");
// I also try this
e.OldValues["price"] = "50" ;
}
}
I try to update the row before insert in database with OnRowUpdating
but it doesn’t change the value. Someone have any idea how to do it ?
Advertisement
Answer
I have to do it in the sql finally.