比如凡是符合第一列的值=1的行都不允许删除。最好在按delete的时候就进行阻止。

解决方案 »

  1.   

    做不到的。
    除非你把allowdelete去掉,然后手工写删除的代码..net 2003的dataGrid是这样,不知.net 2005的GridView是如何。
      

  2.   

    //用js来判断是否可以被删除
    function Delete(obj)
    {
    var objs;
    var id = obj.id;
    if(id!="")
    {
    var objs = obj.children;
    }
    if (objs[1].innerText!="1")
    {
    var deleteID='<%=btndelete.ClientID%>';
    window.document.all(deleteID).click();//调用button事件
    }
    else
    {
    return;
    }
    }//后台绑定,模板列里放过删除button
    private void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
    {
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
    e.Item.ID = "ItemID";
    foreach(DataGridItem di in this.DataGrid1.Items) 
      {
    if(di.ItemType==ListItemType.Item||di.ItemType==ListItemType.AlternatingItem) 
       { 
        ((Button)di.Cells[2].Controls[0]).Attributes.Add("onclick","Delete(this);"); 
       } 
    }
    }
    }