问题在后台注释里面<asp:GridView ID="GridViewNewList" runat="server" DataKeyNames="articleID" A OnRowDeleting="RowDeleting" > 
            <Columns>           
                <asp:CommandField HeaderText="删除" ShowDeleteButton="true" ItemStyle-CssClass="td4" />             
                <asp:HyperLinkField Text="查看/编辑"  HeaderText="查看/编辑" DataNavigateUrlFields="articleID" DataNavigateUrlFormatString="~/BackGround/edit.aspx?id={0}" />
            </Columns>
        </asp:GridView>
 //删除新闻
    protected void RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        int articleid = Convert.ToInt32(GridViewNewList.DataKeys[e.RowIndex].Value.ToString());
        Page.RegisterClientScriptBlock("", "<script language='javascript' type='text/javascript'>confirm('是否要删除新闻');</script>");//这里怎样判断要让它取消的时候不执行下面代码
if(????)
{        
bool flag=Background.DeleteNews(articleid);
        NewList();
}
    }

解决方案 »

  1.   

    写法错误的啊,要在数据绑定的时候找到这个deletebutton
    然后为他增加属性  onclick="return config('Are you shoe')"
      

  2.   

    把  <asp:CommandField HeaderText="删除" ShowDeleteButton="true" ItemStyle-CssClass="td4" /> 转成template
    然后在这个转换后的linkbutton添加onclientclick属性
     OnClientClick="return confirm('你是否确定要删除?')"
      

  3.   

    记得以前写过一个效率不怎么好的方法,大致是是在每行的相应cell中去遍历找到text等于“删除”的linkbutton,再写lnkbtn.OnclientClick="return confirm('确认删除?')",其实还是用template,在里面用linkbuttom,使用commandargument来传值作删除比较方便,这样就可以直接在前台写onclientclick了
      

  4.   

      <asp:TemplateField HeaderText="删除">
                        <ItemTemplate>
                            <asp:ImageButton ID="lbtn_del" runat="server" CommandName ="Delete" ImageUrl ="~/Images/del.gif" />
                        </ItemTemplate>               
                        </asp:TemplateField>RowDataBound事件里写(VB.NET):
    If e.Row.RowType = DataControlRowType.DataRow Then
                CType(e.Row.FindControl("lbtn_del"), ImageButton).Attributes.Add("onclick", "javascript:return confirm('确定删除?')")
            End If