problema ao pegar conteudo do campo texto usandro template na gridview
Boa tarde!
não sei porque mas não consigo pegar o conteudo atual de um textbox que esta em um campo template da minha grid view
abaixo o conteudo do arquivo carrinho.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/Store.master" AutoEventWireup="true" CodeFile="carrinho.aspx.cs" Inherits="carrinho" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentLeft" Runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="ContentCenter" Runat="Server">
<asp:GridView ID="grdCarrinho" runat="server"
onrowdeleting="grdCarrinho_RowDeleting" CellPadding="4" ForeColor="#333333"
GridLines="None" Width="452px" CssClass="table"
AutoGenerateColumns="False" DataKeyNames="ID">
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Image ID="Image1" runat="server" ImageUrl= '<%# "~/Images/thumb65/"+ Eval("urlImagemProduto") %>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Produto">
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Eval("nomeDoProduto") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<!-- Este é o campo que não consigo obter o valor atual quando dou o update -->
<asp:TemplateField HeaderText="Quantidade">
<ItemTemplate>
<asp:TextBox ID="txtQuantidade" runat="server" MaxLength="5" Text='<%# Bind("quantidade") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Preço">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("preco","{0:C}") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Total">
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Eval("totalitem","{0:C}") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowDeleteButton="True" />
</Columns>
<EditRowStyle BackColor="#999999" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#E9E7E2" />
<SortedAscendingHeaderStyle BackColor="#506C8C" />
<SortedDescendingCellStyle BackColor="#FFFDF8" />
<SortedDescendingHeaderStyle BackColor="#6F8DAE" />
</asp:GridView>
Total
<asp:Label ID="labelTotal" runat="server" Text="Label"></asp:Label>
<br />
<asp:Button ID="Button1" runat="server" onclick="Button1_Click1"
Text="Atualizar" />
</asp:Content>
E esta esta é a açao executada em um botao de update que tenho na tela
protected void UpdateTotals()
{
// update the quantities
foreach (GridViewRow row in grdCarrinho.Rows)
{
// quando pego a quantidade atual no campo, nao vem a quantidade //que informei e sim a quantidade que já estava no campo quando foi //construida a grid
int Quantity = Convert.ToInt32((row.FindControl("txtQuantidade") as TextBox).Text);
if (Quantity == 0)
{
Profile.Carrinho.Itens.RemoveAt(row.RowIndex);
}
else
{
Profile.Carrinho.Itens[row.RowIndex].Quantidade = Quantity;
}
grdCarrinho.EditIndex = -1;
BindGrid();
}
}
Alguma ideia de porque isso acontece? como posso resolver?
Discussão (6)
Carregando comentários...