protected void GridView1_DataBound(object sender, EventArgs e)
    {
        Response.Write(GridView1.Rows.Count.ToString());
        for (int i = 0; i < GridView1.Rows.Count - 1; i++) 
        {
            DropDownList dropdownlist = (DropDownList)GridView1.FindControl("DropDownList1");
            for (int j = 1; j < GridView1.Rows.Count - i; j++)
            {
                dropdownlist.Items.Add(new ListItem(j.ToString(), j.ToString()));
            }        }
    }
出现的错误是:未将对象引用设置到对象的实例。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 
行 33:             for (int j = 1; j < GridView1.Rows.Count - i; j++)
行 34:             {
行 35:                 dropdownlist.Items.Add(new ListItem(j.ToString(), j.ToString()));
行 36:             }
行 37: 
 

解决方案 »

  1.   

    很有可能是 dropdownlist  没找到
      

  2.   

    换事件 在RowDataBound 中写
      

  3.   


    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                DropDownList dropdownlist = e.Row.FindControl("DropDownList1") as DropDownList;
                if(dropdownlist!=null)
                {
                    for (int j = 1; j  < GridView1.Rows.Count - i; j++) 
                   { 
                       dropdownlist.Items.Add(new ListItem(j.ToString(), j.ToString())); 
                   }             } 
             }
       }
      

  4.   

     protected void GridView1_DataBound(object sender, EventArgs e) 
        { 
           if(e.Row.RowIndex>=0)
    {
            Response.Write(GridView1.Rows.Count.ToString()); 
            for (int i = 0; i  < GridView1.Rows.Count - 1; i++)  
            { 
                DropDownList dropdownlist = (DropDownList)GridView1.FindControl("DropDownList1"); 
                for (int j = 1; j  < GridView1.Rows.Count - i; j++) 
                { 
                    dropdownlist.Items.Add(new ListItem(j.ToString(), j.ToString())); 
                }         } 
    }
        } 
      

  5.   

    没有找到dropdownlist不可能啊.我在页面上标记的就是这个啊.事件换了也是一样的错误结果.
      

  6.   


     protected void GridView1_DataBound(object sender,GridViewRowEventArgs e)  //应该用GridViewRowEventArgs而不是EventArgs
        {
           // Response.Write(GridView1.Rows.Count.ToString());
            //for (int i = 0; i < GridView1.Rows.Count - 1; i++)
            //{
            //    DropDownList dropdownlist = (DropDownList)GridView1.FindControl("DropDownList1");
            //    for (int j = 1; j < GridView1.Rows.Count - i; j++)
            //    {
            //        dropdownlist.Items.Add(new ListItem(j.ToString(), j.ToString()));
            //    }        //}        if (e.Row.RowType == DataControlRowType.DataRow)  //判断是否是DataRow
            {
                if (e.Row.FindControl("DropDownList1") != null)  //重点此句:如果找到,才做下面的事情,不然会出现“System.NullReferenceException: 未将对象引用设置到对象的实例”
                {
                    DropDownList ddl = (DropDownList)e.Row.FindControl("DropDownList1");                  ddl.Items.Add.Items.Add(new ListItem(j.ToString(), j.ToString()));
                }
            }
        } 
    另外,应在Gridview1写上一个属性OnRowDataBound="GridView1_DataBound"
      

  7.   

    protected void GridView1_DataBound(object sender, EventArgs e) 
        { 
          if(e.Row.RowType == RowType.DataRow)------应该加上一个判断(比较方法的部分内容不准确,请利用vs的智能提示来做)
      {
            Response.Write(GridView1.Rows.Count.ToString()); 
            for (int i = 0; i  < GridView1.Rows.Count - 1; i++)  
            { 
                DropDownList dropdownlist = (DropDownList)GridView1.FindControl("DropDownList1"); 
                for (int j = 1; j  < GridView1.Rows.Count - i; j++) 
                { 
                    dropdownlist.Items.Add(new ListItem(j.ToString(), j.ToString())); 
                }         } 
    }
        } 
      

  8.   

    晕忽忽,LZ 还没解决?  那里不明白可以给我发消息~补充jimu8130  ,jimu8130  的意思是放在RowDataBound中
      

  9.   

    大家不要激动啊.我如果想用protected void GridView1_DataBound(object sender, EventArgs e)来绑定应该怎么写呢?