从动态创建的按钮执行方法

本文关键字:执行 方法 按钮 动态 创建 | 更新日期: 2023-09-27 18:04:26

我试图动态创建一个数据和按钮作为下载链接的表。在按钮单击时,我希望调用一个方法,并使用与该单个按钮对象相关的参数。

foreach(var item in list_files) {
  TableRow tRow = new TableRow();
  file_table.Rows.Add(tRow);
  TableCell namecell = new TableCell();
  namecell.Text = item.name;
  tRow.Cells.Add(namecell);
  TableCell datecell = new TableCell();
  datecell.Text = item.uTC;
  tRow.Cells.Add(datecell);
  TableCell sizecell = new TableCell();
  sizecell.Text = item.size;
  tRow.Cells.Add(sizecell);
  Button downloadButton = new Button();
  downloadButton.Text = "Download";
  // code here to call a method named GetFile with two arguments from "item"
  // e.g b.onclick ( GetFile(item.a, item.b)) ;
  TableCell downloadlink = new TableCell();
  downloadlink.Controls.Add(downloadButton);
  tRow.Cells.Add(downloadlink);
}

从动态创建的按钮执行方法

foreach (var item in list_files)
{
    TableRow tRow = new TableRow();
    file_table.Rows.Add(tRow);
    TableCell namecell = new TableCell(); namecell.Text = item.name; tRow.Cells.Add(namecell);
    TableCell datecell = new TableCell(); datecell.Text = item.uTC; tRow.Cells.Add(datecell);
    TableCell sizecell = new TableCell(); sizecell.Text = item.size; tRow.Cells.Add(sizecell);
    Button downloadButton = new Button();
    downloadButton.Text = "Download";
    downloadButton.Click += (sender, evnt) =>
    {
       //do stuff here
       GetFile(item.a, item.b)
    };
    // code here to call a method named GetFile with two arguments from "item"
    // e.g b.onclick ( GetFile(item.a, item.b)) ;
    TableCell downloadlink = new TableCell(); downloadlink.Controls.Add(downloadButton); tRow.Cells.Add(downloadlink);
}