//protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
    //{
        
    //    if(e.Item.HasControls ())
    //    {
    //        LinkButton delete = (LinkButton )e.Item.FindControl("LinkButton2");    //        if (delete.Text .Equals ("删除"))
    //        {
    //            delete.Attributes.Add("onclick","javascript:return confirm('"+string .Format ("您确定要删除此信息吗{0}",Eval ("name"))+"')");
    //        }    //    }
       
    //}
我想这样得到,datalist里的删除按钮,然后添加属性,可是报错,不知道是不是应该在这里添加,请指教

解决方案 »

  1.   

    “/test”应用程序中的服务器错误。
    --------------------------------------------------------------------------------未将对象引用设置到对象的实例。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 
    行 64:             LinkButton delete = (LinkButton)e.Item.FindControl("LinkButton2");
    行 65: 
    行 66:             if (delete.Text.Equals("删除"))
    行 67:             {
    行 68:                 delete.Attributes.Add("onclick", "javascript:return confirm('您确定要删除此信息吗')");
     源文件: d:\Backup\test\datalist2.aspx.cs    行: 66 堆栈跟踪: 
    [NullReferenceException: 未将对象引用设置到对象的实例。]
       datalist2.DataList1_ItemDataBound(Object sender, DataListItemEventArgs e) in d:\Backup\test\datalist2.aspx.cs:66
       System.Web.UI.WebControls.DataList.OnItemDataBound(DataListItemEventArgs e) +105
       System.Web.UI.WebControls.DataList.CreateItem(Int32 itemIndex, ListItemType itemType, Boolean dataBind, Object dataItem) +142
       System.Web.UI.WebControls.DataList.CreateControlHierarchy(Boolean useDataSource) +498
       System.Web.UI.WebControls.BaseDataList.OnDataBinding(EventArgs e) +56
       System.Web.UI.WebControls.BaseDataList.DataBind() +72
       datalist2.binddata() in d:\Backup\test\datalist2.aspx.cs:31
       datalist2.Page_Load(Object sender, EventArgs e) in d:\Backup\test\datalist2.aspx.cs:19
       System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +15
       System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +34
       System.Web.UI.Control.OnLoad(EventArgs e) +99
       System.Web.UI.Control.LoadRecursive() +47
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1061 
      

  2.   

    protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e) 

            
        if(e.Item.ItemType==DataControlCellType.DataCell)
        { 
            LinkButton delete = (LinkButton )e.Item.FindControl("LinkButton2");         if (delete!=null) 
            { 
                delete.Attributes.Add("onclick","javascript:return confirm('您确定要删除此信息吗')"); 
            } 
        } 
          
      

  3.   

    //我用的Repeater,参考下  
    if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
            {
                ImageButton butClear = (ImageButton)e.Item.FindControl("clearP");
              //在页面为Button控件定义CommandName 属性
                if(butClear.CommandName = "delete")
                {
                 butClear.Attributes.Add("onclick", "return confirm('你确定要删除该产品吗');");
                }
            }
      

  4.   

    我不知道你们是不是胡乱比划上来的,我的是不行,编译错误 
    说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 编译器错误信息: CS0019: 运算符“==”无法应用于“System.Web.UI.WebControls.ListItemType”和“System.Web.UI.WebControls.DataControlCellType”类型的操作数源错误: 行 60:     {
    行 61: 
    行 62:         if (e.Item.ItemType == DataControlCellType.DataCell)
    行 63:         {
    行 64:             LinkButton delete = (LinkButton)e.Item.FindControl("LinkButton2");