前往
大廳
主題

[ASP.NET C#] 動態新增控制項使用Table排版

阿宅 | 2020-11-04 12:26:22 | 巴幣 2 | 人氣 1877

需要動態控制項(不確定有多少個控制項)時,並且需要排版
無法使用HTML的Table,需使用ASP的Table

注意事項:
1、Page_Load 需要再PostBack時再次創建,否則觸發動態控制項時,整個表格就消失了
2、動態控制項的ID一定要加入,我有參考到沒加入ID的一樣可以動作,但是產生的第一次事件無法觸發

protected void Page_Load(object sender, EventArgs e)
{
            if(IsPostBack)
                CreateTable(); //需要再PostBack再次建立表格,否則按鈕後會消失
}
protected void btn_Click(object sender, EventArgs e)
{
            Button btn= (Button)sender;
            if (btn== null)
                return;
            Response.Write(btn.ID);//抓取btnID
            Label1.Text = btn.CommandArgument;//可以自訂義參數

}
private void CreateTable()
{
            Table1.Rows.Clear();
            Button[] btn = new Button[n];
            for (int i = 0; i < 4; i++)
            {
                TableRow row = new TableRow();
                TableCell cell= new TableCell();
                cell.Text = "測試" + i;
                row.Cells.Add(cell);
                Table1.Rows.Add(row);

                Button btn= new Button();
                btn.ID = "btn" + i; //需要加入ID才不會第一次按鈕無反應
                btn.Text = "btn" + i;
                btn.Click += new EventHandler(btn_Click); //添加相應事件
                btn.CommandArgument = i.ToString();//自訂義參數

                cell = new TableCell();
                cell.Controls.Add(btn);//在此欄加入按鈕
                row.Cells.Add(cell);
                Table1.Rows.Add(row);
            }
}

protected void Button1_Click(object sender, EventArgs e)
{
            CreateTable();
}

創作回應

相關創作

更多創作