Я создаю корзину покупок. У меня есть GridView со всеми моими продуктами, и у меня есть кнопка обновления, которая при щелчке я хочу взять значения в столбце цены и умножить ее на входные значения в количестве TextBox и отобразить их в ItemTotal Label. Мои входы SQL для lblPrice находятся в десятичной форме и, однако, отображаются в gridview как $ _. 00. Я продолжаю работать в формате Exception для lblPrice. Мне было интересно, есть ли у меня способ конвертировать lblPrice обратно в десятичную, но все же он отображается как цена на gridview?Установить двойной как ярлык в GridView
ShoppingCart.aspx
<asp:TemplateField HeaderText="Price">
<ItemTemplate>
<asp:Label ID="lblPrice" runat="server" Text='<%# Bind("Price")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Quantity">
<ItemTemplate>
<asp:TextBox ID="txtQuantity" runat="server"></asp:TextBox>
<asp:CompareValidator runat="server" Operator="DataTypeCheck" Type="Integer"
ControlToValidate="txtQuantity" ErrorMessage="Value must be a whole number" ForeColor="Red" />
</ItemTemplate>
</asp:TemplateField>
ShoppingCart.aspx.cs
protected void btnUpdate_Click(object sender, EventArgs e)
{
foreach (GridViewRow row in gvProductsList.Rows)
{
double lblPrice = Convert.ToDouble(((Label)row.FindControl("lblPrice") as Label).Text);//convert value of lbl to double
int txtQuantity = int.Parse(((TextBox)row.FindControl("txtQuantity") as TextBox).Text);//convert value of textbox to int
Label lblItemTotal = (row.FindControl("lblItemTotal")) as Label;//find lblItemTotal label in each row
lblItemTotal.Text = Convert.ToString(lblPrice * txtQuantity);
}
}
Звучит так, будто вы идете по правильному пути. Что не работает? –
Я получаю System.FormatException, заявляя, что «строка ввода не была в правильном формате». для двойной строки lblPrice = Convert.ToDouble (((Ярлык). FindControl («lblPrice») в качестве метки) .Text); – Jamie
Что такое примерное значение для этой метки, 'lblPrice'? –