C# 如何在运行时生成的asp.net web表的每一行中动态添加“删除”和“更新”按钮
我正在尝试自己学习asp.net,因此我已经学习了如何在sql server中插入数据,以及如何从数据库中获取数据并在表中动态显示,但我尝试做的是,我希望在链接到同一行的每一行中都有两个delete和update按钮,如果我单击第1行的delete按钮,它将将该行完全从web和sql server中删除。 下面是我用来从sql server获取数据并在单击按钮时将其显示在表中的代码C# 如何在运行时生成的asp.net web表的每一行中动态添加“删除”和“更新”按钮,c#,asp.net,C#,Asp.net,我正在尝试自己学习asp.net,因此我已经学习了如何在sql server中插入数据,以及如何从数据库中获取数据并在表中动态显示,但我尝试做的是,我希望在链接到同一行的每一行中都有两个delete和update按钮,如果我单击第1行的delete按钮,它将将该行完全从web和sql server中删除。 下面是我用来从sql server获取数据并在单击按钮时将其显示在表中的代码 protected void DisplayData_Click(object sender, EventArgs
protected void DisplayData_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(connStr);
con.Open();
SqlCommand cd = new SqlCommand("select * from signup",con);
SqlDataReader rd = cd.ExecuteReader();
if(rd.HasRows)
{
while(rd.Read())
{
TableRow row = new TableRow();
TableCell cell1 = new TableCell();
cell1.Text = rd[0].ToString();
TableCell cell2 = new TableCell();
cell2.Text = rd[1].ToString();
TableCell cell3 = new TableCell();
cell3.Text = rd[2].ToString();
TableCell cell4 = new TableCell();
cell4.Text = rd[3].ToString();
TableCell cell5 = new TableCell(); cell5.Text = rd[4].ToString();
TableCell cell6 = new TableCell(); cell6.Text = rd[5].ToString();
row.Cells.Add(cell1);
row.Cells.Add(cell2);
row.Cells.Add(cell3);
row.Cells.Add(cell4);
row.Cells.Add(cell5);
row.Cells.Add(cell6);
Table1.Rows.Add(row);
}
}
}
您可以使用以下选项添加按钮:
TableCell btnCell= new TableCell();
Button btn = new Button();
btn.Id = "Id";
btn.Text = "Something";
btn.Click += new EventHandler(BtnHandler_Click);
btnCell.Controls.Add(btn);
row.Cells.Add(btnCell);
事件
protected void BtnHandler_Click(object sender, EventArgs e)
{
// Do something
}
注意:看一看,对于您想要实现的目标来说,这似乎是一个更好的选择。试试下面的代码
//Update Button
TableCell cell7 = new TableCell();
Button btn1 = new Button();
btn.Id="btnUpdate";
btn.Text = "Update";
btn.Click += new EventHandler(btnUpdate_Click);
cell7.Controls.Add(btn1);
//Delete Button
TableCell cell8 = new TableCell();
Button btn2 = new Button();
btn.Id="btnDelete";
btn.Text = "Delete";
btn.Click += new EventHandler(btnDelete_Click);
cell8.Controls.Add(btn2);
// add above two cell objects to row object
row.Cells.Add(cell7);
row.Cells.Add(cell8);
//Update button event handler
protected void btnUpdate_Click(object sender,EventArgs e)
{
// update the record
}
//Delete button event handler
protected void btnDelete_Click(object sender,EventArgs e)
{
// Delete the record
}
ASP GridView控件可能会在这里帮助您,而不是手动创建表。它内置了用于编辑/删除按钮的挂钩。我已经做了这件事,但当我单击按钮时,它没有击中事件处理程序。需要在页面上添加动态控件,以便正确地返回到fire events。您能解释一下吗?很好的回答,先生,现在显示了按钮。但现在的问题是,这段代码没有在单击按钮时命中事件处理程序。我也使用了debbugers,但它们没有命中为什么?在.aspx页面和placeHolder.Controls.AddTable1后面的代码中添加一件事;将表对象添加到页面我在aspx中添加了asp表,其中包含标题行和冒号。并从这里动态添加更多行。