none
programar evento de un control dentro de un listview

    Pregunta

  • Estoy tratando de realizar un mantenimiento de un detalle con un listview, y tengo +- lo siguiente:


    Ahora, lo que pensaba hacer es que dandole click al boton con los tres puntitos, busque un producto con el codigo ingresado y me muestre abajo su descripcion y el precio...y ese es justamente mi dificultad, como puedo hacer eso...

    Como puedo hacer para programar en el evento click de dicho boton, sabiendo que existe uno por cada registro que añada...

    Gracias de antemano.
    Saludos.
    <body>
        <form id="form1" runat="server">
        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
        <div>
            <asp:Button ID="btnCargar" runat="server" Text="Cargar" 
                onclick="btnCargar_Click" />
            <asp:Button ID="btnAdd" runat="server" Text="Add" onclick="btnAdd_Click" />
    
        </div>
        
        <div>
            <asp:ListView ID="ListView1" runat="server" DataSourceID="ObjectDataSource1">
                <ItemTemplate>
                    <tr style="">
                        <td>
                            Código:&nbsp; 
                            <asp:TextBox ID="txtCodigoProducto" Width="50px" runat="server" Text='<%# Bind("CodigoPedido") %>'/>
                            <asp:Button ID="btnBuscarProducto" Text="..." runat="server"/>
                            <br />
                            <asp:Label ID="lblDescripcionProducto" runat="server" Text='<%# Bind("DescripcionProducto") %>' />
                            <br />
                            Precio: &nbsp;<asp:Label ID="lblPrecioProducto" runat="server" Text='<%# Bind("PrecioProducto") %>' />
                        </td>
                        <td>
                            <asp:TextBox ID="txtCantidadProducto" Width="50px" runat="server" Text='<%# Bind("Cantidad") %>' />
                        </td>
                        <td>
                            <asp:Label ID="SubTotalLabel" runat="server" Text='<%# Eval("SubTotal") %>' />
                        </td>
                    </tr>
                </ItemTemplate>
                
                <EmptyDataTemplate>
                    <table runat="server" style="">
                        <tr>
                            <td>
                                No se han devuelto datos.</td>
                        </tr>
                    </table>
                </EmptyDataTemplate>
                <InsertItemTemplate>
                    <tr style="">
                        <td>
                            <asp:Button ID="InsertButton" runat="server" CommandName="Insert" 
                                Text="Insertar" />
                            <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" 
                                Text="Borrar" />
                        </td>
                        <td>
                            <asp:TextBox ID="CodigoPedidoTextBox" runat="server" 
                                Text='<%# Bind("CodigoPedido") %>' />
                        </td>
                        <td>
                            <asp:TextBox ID="CodigoProductoTextBox" runat="server" 
                                Text='<%# Bind("CodigoProducto") %>' />
                        </td>
                        <td>
                            <asp:TextBox ID="DescripcionProductoTextBox" runat="server" 
                                Text='<%# Bind("DescripcionProducto") %>' />
                        </td>
                        <td>
                            <asp:TextBox ID="PrecioProductoTextBox" runat="server" 
                                Text='<%# Bind("PrecioProducto") %>' />
                        </td>
                        <td>
                            <asp:TextBox ID="CantidadTextBox" runat="server" 
                                Text='<%# Bind("Cantidad") %>' />
                        </td>
                        <td>
                            <asp:TextBox ID="SubTotalTextBox" runat="server" 
                                Text='<%# Bind("SubTotal") %>' />
                        </td>
                    </tr>
                </InsertItemTemplate>
                <LayoutTemplate>
                    <table cellpadding="2" width="640px" border="1" runat="server" id="tdbDetalle" class="tablaDetalle">
                        <tr runat="server" style="" id="fila">
                            <th runat="server">
                                Producto
                            </th>
                            
                            <th runat="server">
                                Cantidad
                            </th>
                            <th runat="server">
                                SubTotal
                            </th>
                        </tr>
                        <tr runat="server" id="itemPlaceholder" />
                        
                    </table>
                    <asp:DataPager runat="server" ID="ContactsDataPager" PageSize="12">
                        <Fields>
                            <asp:NextPreviousPagerField ShowFirstPageButton="True" ShowLastPageButton="True"
                                FirstPageText="|&lt;&lt; " LastPageText=" &gt;&gt;|" NextPageText=" &gt; " PreviousPageText=" &lt; " />
                        </Fields>
                    </asp:DataPager>
                </LayoutTemplate>
            </asp:ListView>
        </div>
        </form>
    </body>
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using AjaxPro;
    
    namespace DemoDetalle
    {
        public partial class _Default : System.Web.UI.Page
        {
            
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    Session["xxParam"] = new List<Detalle>();
                }
            }
    
            protected void btnCargar_Click(object sender, EventArgs e)
            {
                
                ListView1.EditIndex = 1;
    
            }
    
            protected void btnAdd_Click(object sender, EventArgs e)
            {
                Detalle oDetalle = new Detalle();
                oDetalle.CodigoPedido = 1000;
                oDetalle.CodigoProducto = 150;
                oDetalle.DescripcionProducto = "Ron";
                oDetalle.PrecioProducto = 69;
                oDetalle.PrecioProducto = 1000;
                oDetalle.SubTotal = 522;
    
                Metodos.AddItemDetalle(oDetalle);
    
                ListView1.DataBind();
            }
    
            public Producto GetProducto()
            {
                return Metodos.GetProducto();
            }
        }
    }
    
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Data.SqlClient;
    using System.Data;
    using AjaxPro;
    
    
    namespace DemoDetalle
    {
        public class Metodos
        {
            public List<Detalle> ListarDetalle()
            {
                return (List<Detalle>) HttpContext.Current.Session["detalle"];
            }
    
            public static void AddItemDetalle(Detalle item)
            {
                List<Detalle> lista = (List<Detalle>)HttpContext.Current.Session["detalle"];
                
    
                if (lista == null)
                {
                    lista = new List<Detalle>();
                }
                lista.Add(item);
                
                HttpContext.Current.Session["detalle"] = lista;
            }
    
            
            public static Producto GetProducto()
            {
                Producto item = null;
                using (SqlConnection oCn = new SqlConnection("Server=192.168.1.150;Database=NorthWind;Uid=sa;Pwd=sa$2009;"))
                {
                    oCn.Open();
                    using (SqlCommand oCmd = new SqlCommand())
                    {
                        oCmd.Connection = oCn;
                        oCmd.CommandType = CommandType.Text;
                        oCmd.CommandText = @"Select ProductID, ProductName, UnitPrice, UnitsInStock from Products where ProductID = 10";
                        SqlDataReader reader = oCmd.ExecuteReader();
                        while (reader.Read())
                        {
                            item  = new Producto();
                            item.CodigoProducto = int.Parse(reader["ProductID"].ToString());
                            item.DescripcionProducto = reader["ProductName"].ToString();
                            item.Precio = Convert.ToDouble(reader["UnitPrice"]);
                            item.Cantidad = int.Parse(reader["Quantity"].ToString());
                            
                            
                            
                        }
                    }
    
                }
                return item;
            }
    
           
        }
    }


    El hombre mas poderoso del mundo es aquel que es dueño de si mismo
    domingo, 14 de junio de 2009 7:39

Todas las respuestas

  • Hola FAFNER

    solo como antecedente recuerda que cada control es diferente aunque se llame igual, ya intentaste realizar el findcontrol por cada linea que genras y darle la funcionalidad que deceas

    por ejemplo tendrias que buscar dos controles el boton y textbox para que el textbox te arroje el parametro que necesitas enviar y el boton que se encargara de la operacion.

    Si la respuesta te fue útil recuerda marcarla como respusta o útil.
    Jonathan Romero
    Especialista .Net

    Profesional Microsoft VIP
    DCE 3a Estrella
    Spaces: seguridad y programacion
    martes, 16 de junio de 2009 15:21
  • Si, si recuerdo, pero no logro entender my bien como hacer eso :(
    Quiza podrias darme algun ejemplo o una pista de código de como poder hacerlo...te lo agradecería...:)

    Saludos.

    El hombre mas poderoso del mundo es aquel que es dueño de si mismo
    viernes, 19 de junio de 2009 17:32