asp.net点击事件没有启动

时间:2013-10-20 15:10:34

标签: c# asp.net

我遇到了Button的问题。 Click事件无效,我将此按钮添加到表格上的单元格。表的行由List填充。这是一个大学的简单项目。我已在前一页上使用此代码,但它可以正常工作。

这是我的代码:

ASPX:

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">

<!-- Nombre del Cliente -->
<asp:Label ID="lblNombreCliente" CssClass="lbl negrita fs30" runat="server" Text="Cliente: " />
<!-- Listado de Proyectos-->
<asp:Table ID="tblProyectos" CssClass="tbl" runat="server">
    <asp:TableRow>
        <asp:TableHeaderCell CssClass="th w10">Cod</asp:TableHeaderCell>
        <asp:TableHeaderCell CssClass="th">Nombre</asp:TableHeaderCell>
        <asp:TableHeaderCell CssClass="th w10">Horas</asp:TableHeaderCell>
        <asp:TableHeaderCell CssClass="th w20">Encargado</asp:TableHeaderCell>
        <asp:TableHeaderCell CssClass="th">Ver</asp:TableHeaderCell>
    </asp:TableRow>
</asp:Table>

CS:

protected void Page_Load(object sender, EventArgs e)
        {
            int codCliente = 0;

            if(!IsPostBack)
            {
                //Usuario Conectado
                string nombre = Request.Params["usuario"];

                if (nombre != null)
                {
                    this.Master.datosUsuario = String.Format(nombre);
                }

                //Codigo Cliente
                codCliente = int.Parse(Request.Params["codCliente"]);
                if (codCliente != 0) 
                {
                    foreach (Cliente objCliente in listaClientes)
                    {
                        if (objCliente.Cod_cliente == codCliente)
                        {
                            lblNombreCliente.Text = objCliente.Nombre;
                        }
                    }
                }

            }//fin isPostBack

                //Se agregan proyectos a la tbl
                int i = 1;
                foreach (Proyecto item in listaProyectos)
                {
                    //Se rellenan las celdas
                    if (item.Cod_cliente == codCliente)
                    {
                        TableRow fila = new TableRow();
                        TableCell cod = new TableCell();
                        TableCell nombre_proyecto = new TableCell();
                        TableCell horas = new TableCell();
                        TableCell encargado = new TableCell();
                        TableCell btnsProyecto = new TableCell();

                        string nombre_encargado = string.Empty;

                        foreach (Usuario usu in listaUsuarios)
                        {
                            if(usu.Cod_usuario == item.Cod_encargado){
                                nombre_encargado = usu.Nombre;
                                break;
                            }
                        }

                        Button btnIngreso = new Button();
                        btnIngreso.CssClass = "btn";
                        btnIngreso.Text = "Ingresar";
                        btnIngreso.ID = "btnIngresar_" + i;
                        btnIngreso.Click += new EventHandler(this.btnIngresar_Click);
                        btnsProyecto.Controls.Add(btnIngreso);

                        cod.Text = item.Cod_proyecto.ToString();
                        nombre_proyecto.Text = item.Nombre_proyecto;
                        horas.Text = item.Horas.ToString();
                        encargado.Text = nombre_encargado;

                        //Se agregan las celdas
                        fila.Cells.Add(cod);
                        fila.Cells.Add(nombre_proyecto);
                        fila.Cells.Add(horas);
                        fila.Cells.Add(encargado);
                        fila.Cells.Add(btnsProyecto);

                        tblProyectos.Rows.Add(fila);
                        i++;
                    }

                }//fin foreach tbl


        }//fin page_load

        protected void btnIngresar_Click(Object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            int fila = int.Parse(btn.ID.Substring(btn.ID.Length - 1));
            int codProyecto = int.Parse(tblProyectos.Rows[fila].Cells[0].Text);
            string url = String.Format("{0}?codProyecto={1}&usuario={2}"
                                        , "IngresoMantencion.aspx"
                                        , codProyecto, this.objUsuario.Nombre);
            Response.Redirect(url);
        }

我来自智利,这就是我的代码有西班牙语的原因。我希望你能帮助我。

谢谢!

1 个答案:

答案 0 :(得分:1)

您的按钮名为Button btnIngreso = new Button();,但您致电protected void btnIngresar_Click(Object sender, EventArgs e) 将处理程序重命名为protected void btnIngreso_Click(Object sender, EventArgs e),看看它是否有效。

希望有所帮助,

克里斯