如何获取在ASP.NET中单击的按钮的动态设置ID

时间:2018-04-27 20:31:02

标签: c# asp.net

我已经动态创建了一个具有ID和名称的按钮,我现在想要使用' btnCategoryClick'来制作点击事件。方法,返回特定单击按钮的ID。这是我的代码

 protected void Page_Load(object sender, EventArgs e)
    {
        MySqlConnection con = new MySqlConnection(connection);
        MySqlDataAdapter sda = new MySqlDataAdapter("SELECT * FROM category", con);
        DataTable dt = new DataTable();
        sda.Fill(dt);

        foreach (DataRow row in dt.Rows)
        {
            //responsive paneel 
            Panel resPanel = new Panel();
            resPanel.CssClass = "category-panel all-category category-content";

            // een paneel voor de categorieen
            // categorie verschijnt in een vorm van een button
            Panel categoryPanel = new Panel();
            Button btnCategory = new Button
            {

                // attributen meegeven aan de categorie buttons id, naam, class
                ID = row["category_id"].ToString()
            };
            btnCategory.Text += row["categoryName"].ToString();
            btnCategory.CssClass = "category-name";
            // een klik event meegeven aan de buttons
            btnCategory.Click += new EventHandler(btnCategoryClick);

            // voeg button toe aan de paneel
            // #categoryPanel is de paneel in backend
            categoryPanel.Controls.Add(btnCategory);
            resPanel.Controls.Add(categoryPanel);


            // koppel de backend paneel aan de frontend paneel
            // pnlCategory is de frontend(html/aspx) id
            pnlCategory.Controls.Add(resPanel);

        }
    }

    private void btnCategoryClick(object sender, EventArgs e)
    {

    }

1 个答案:

答案 0 :(得分:1)

点击事件的sender将是按钮。在事件处理程序中,只需将sender转换为Button类型,然后获取其ID:

private void btnCategoryClick(object sender, EventArgs e)
{
     Button btn = (Button)sender;
     string categoryId = btn.ID;
}