我在多次搜索后编写了此代码,但不起作用
我需要以编程方式创建为 asp:button 并处理它
for(int i=0;i<DtShow.Rows.Count;i++)
{
Button btn = new Button
{
Text = "حذف",
ID = i.ToString(),
UseSubmitBehavior = false,
CommandArgument =i.ToString(),
CssClass = "btn btn-danger"
};
btn.Click +=new EventHandler(this.btn_Click);
lstAccessDgv.Rows[i].Cells[2].Controls.Add(btn);
}
protected void btn_Click(object sender, EventArgs e)
{
Button b = (Button)sender;
int id = Convert.ToInt32(b.ID);
DtCode.Rows.RemoveAt(id);
DtShow.Rows.RemoveAt(id);
lstAccessDgv.Rows[id].Visible = false;
}
为什么不打电话给btn_Click?
不幸的是,您的问题没有明确说明您要查找的信息,但是,由于您确实进行了特定查询,我将解决这个问题。
为什么不打电话给btn_Click?
因为 btn_Click
事件处理程序尚未绑定到按钮的单击事件。
这就是为什么在创建按钮时需要执行此操作的原因:
btn.Click +=new EventHandler(this.btn_Click);
这将在单击按钮时btn_Click
执行。
但是,要记住的一点是,此函数将针对列表中的每个按钮执行,因此您需要确保它确实与按钮所属的列表项特别相关。