Mira la verdad yo tambien tuve ese problema con el ItemCommand en 2003 y ahora estoy trabajando en 2005, no se si en el DataGrid 2003 tambien tenga algun evento para los ItemUpdating pero aqui te paso como lo hago yo en 2005 y el GridView, cualquier cosita a
[email protected],
[email protected]
aspx
<asp:GridView runat="server" ID="gvcarrito" AutoGenerateColumns="false">
<RowStyle CssClass="row_items" />
<HeaderStyle CssClass="header" />
<AlternatingRowStyle CssClass="alter_items" />
<Columns>
<asp:BoundField DataField="codigo" HeaderText="codigo" />
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox runat="server" ID="txtcant" Text='<%#Container.DataItem("cantidad") %>'
CssClass="row_items" Width="30" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Button runat="server" ID="btn" Text="Act" CommandName="update" CssClass="alter_items" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
CodeFile
Imports System.Data
Partial Class Default5
Inherits System.Web.UI.Page
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim dt As DataTable
If Not Session("dtcarrito") Is Nothing Then
dt = CType(Session("dtcarrito"), DataTable)
Else
dt = New DataTable
dt.Columns.Add("codigo")
dt.Columns.Add("cantidad")
End If
dt.Rows.Add(New Object() {TextBox1.Text, TextBox2.Text})
gvcarrito.DataSource = dt
gvcarrito.DataBind()
Session("dtcarrito") = dt
End Sub
Protected Sub gvcarrito_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles gvcarrito.RowUpdating
Dim item As GridViewRow = CType(gvcarrito.Rows(e.RowIndex), GridViewRow)
Dim txt As TextBox = CType(item.FindControl("txtcant"), TextBox)
Dim dt As DataTable
dt = CType(Session("dtcarrito"), DataTable)
dt.Rows(e.RowIndex)("cantidad") = txt.Text
dt.AcceptChanges()
gvcarrito.DataSource = dt
gvcarrito.DataBind()
Session("dtcarrito") = dt
End Sub
End Class