动态按钮不会触发点击事件

时间:2019-08-31 21:17:53

标签: c# asp.net visual-studio pagecontrol

我正在创建一个预算页面,客户可以在表中选择许多服务和产品。选择服务后,他可以从表中删除一些服务。因此,作为解决方案,我创建了一个带有EventHandler的动态按钮以删除指定的服务。

但是当我单击以删除时,有时必须双击以删除服务。

protected void Page_Load(object sender, EventArgs {
if (servicosSelecionados == null)
  servicosSelecionados = new List<Servico>();
  carregarTabelaServicos();
}
protected void Page_LoadComplete(object sender, EventArgs {
  carregarSelectServicos();
}


protected void carregarTabelaServicos(){
  TableRow row;
  TableCell cell;
  Button btn;

if (tbl_Servicos.Rows.Count > 0)
  tbl_Servicos.Rows.Clear();

if (servicosSelecionados.Count > 0){
  row = new TableRow();
  cell = new TableCell();
  btn = new Button();

  btn.Click += new EventHandler(btn_RemoverServico_Click);
  btn.CommandArgument = s.idServico.ToString();
  cell.Controls.Add(btn);

  row.Cells.Add(cell);
  tbl_Services.Rows.Add(row);
}
}

//Event that remove the service from the table
protected void btn_RemoverServico_Click(object sender, EventArgs e) {
  Button btn = sender as Button;
  int id;

  foreach (Servico s in servicosSelecionados)
  {
    id = int.Parse(btn.CommandArgument);
    if (s.idServico == id)
    {
       servicosSelecionados.Remove(s);
       break;
    }
  }
  carregarTabelaServicos();
}


//Event that add service to the table
protected void btn_AdicionarServico_Click(object sender, EventArgs e)
{

..conection to database using var Context..

if (!txt_ServicoSelecionado.SelectedValue.Equals("-")){
  int id = int.Parse(txt_ServicoSelecionado.SelectedValue);
  Servico s = context.Servico.Where(servico => servico.idServico == id).FirstOrDefault();
  servicosSelecionados.Add(s);
  carregarTabelaServicos();
}
}



我需要从列表中删除服务,并使用列表更新表。 但是在第一次单击中,执行甚至没有通过“ btn_RemoverServico_Click”函数。

0 个答案:

没有答案