我遇到了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);
}
我来自智利,这就是我的代码有西班牙语的原因。我希望你能帮助我。
谢谢!
答案 0 :(得分:1)
您的按钮名为Button btnIngreso = new Button();
,但您致电protected void btnIngresar_Click(Object sender, EventArgs e)
将处理程序重命名为protected void btnIngreso_Click(Object sender, EventArgs e)
,看看它是否有效。
希望有所帮助,
克里斯