JimmyLin(QQ36861131)

亲密接触ASP.NET2.0

博客园 首页 新随笔 联系 订阅 管理

思路:
为删除按钮添加客户端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添加确认对话框

posted on 2005-03-02 12:27  剑鸣  阅读(781)  评论(0)    收藏  举报