思路:
为删除按钮添加客户端onclick事件
步骤:
1.在DetailsView的DataBound事件中,先判断DetailsView当前状态(分三种,Edit,Insert,ReadOnly)
2.当DetailsView状态为ReadOnly时,根据删除按钮的类型所在的Rows定位控件,例如删除按钮是link类型,处在第6行,则代码如下:
void DetailsView1_DataBound(object sender, EventArgs e)
{
//给删除按钮加一个确认框,当数据条目增减的时候必须修改Rows的index值
if (DetailsView1.CurrentMode == DetailsViewMode.ReadOnly)
{
LinkButton lbtn = (LinkButton)DetailsView1.Rows[5].Cells[0].Controls[2];
lbtn.Attributes.Add("onclick", "javascript:return confirm('确定删除这条记录么?')");
}
}
特别提示:红字部分Controls的index,如果CommandField中按钮排列顺序是 Edit Delete New,则Controls的index为2,因为在Edit和Delete两个Button间还有一个Literal控件,笔者最初将index设为1(原以为Edit的index是0,则Delete的index为1),结果出错,后来用GetType()跟踪控件类型,发现index=1的控件类型为literal.
3.为定位到的Delete按钮添加客户端事件(文中红色背景部分)。
遗留问题:
1.为什么多了一个Literal控件
2.还有什么方法可以为Delete Button添加确认对话框
浙公网安备 33010602011771号