后台代码如下: 第一百五十一行出错
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Text;namespace Test
{
        public partial class _Default : System.Web.UI.Page //定义解决方案下的Web服务应用程序中所有控件
    {
        protected System.Web.UI.WebControls.DataGrid DataGrid1;
        protected System.Web.UI.HtmlControls.HtmlInputHidden hiduserid;
        protected System.Web.UI.WebControls.Button btndelete;
        protected System.Web.UI.WebControls.DropDownList DropDownList1;
        protected System.Web.UI.WebControls.DropDownList DropDownList2;
        protected System.Web.UI.WebControls.DropDownList DropDownList3;
        protected System.Web.UI.WebControls.CheckBox CheckBox1;
        protected System.Web.UI.WebControls.TextBox TextBox1;
        protected System.Web.UI.WebControls.Button Button1;
        protected System.Web.UI.WebControls.Button Button2;
      
            private string constring = "";             protected void Page_Load(object sender, EventArgs e)   //加载页面执行
        {
            if (!Page.IsPostBack)
            {
                ListProvince();
                ListCity();
                ListArea();                btndelete.Attributes.Add("onclick", "return Delete();");
                SortExpression = "";
                sort = "desc";
                DataGridBind();
            }            
        }
        //绑定数据
            #region DataBind
       private void DataGridBind()
        {
            string sql="select a.UserID,a.UserName,b.province333,c.city444,d.area555,a.Enabled,b.provinceID222,c.cityID111,d.areaID000 from testgrid a ";
            sql+=" left join province b on a.provinceID=b.provinceID222";
            sql+=" left join city c on a.cityID=c.cityID111";
            sql+=" left join area d on a.areaID=d.areaID000";
            DataSet ds=GetDataSet(sql);
            dt=ds.Tables[0];
            dt.DefaultView.Sort="UserID asc";
            dt.AcceptChanges();
            this.DataGrid1.DataSource=dt;
            this.DataGrid1.DataBind();
        }
        #endregion
        //网页表格设计器自动生成代码
        #region Web Form Designer generated code
        override protected void OnInit(EventArgs e)
        {
            //
            // CODEGEN: This call is required by the ASP.NET Web Form Designer.
            //
            InitializeComponent();
            base.OnInit(e);
            this.DataGrid1.ItemDataBound+=new DataGridItemEventHandler(DataGrid1_ItemDataBound);
            this.DataGrid1.SortCommand+=new DataGridSortCommandEventHandler(DataGrid1_SortCommand);
            this.DataGrid1.ItemCreated+=new DataGridItemEventHandler(DataGrid1_ItemCreated);
            this.DataGrid1.PageIndexChanged+=new DataGridPageChangedEventHandler(DataGrid1_PageIndexChanged);
            this.btndelete.Click += new System.EventHandler(this.btndelete_Click);
            this.DropDownList1.SelectedIndexChanged += new System.EventHandler(this.DropDownList1_SelectedIndexChanged);
            this.DropDownList2.SelectedIndexChanged += new System.EventHandler(this.DropDownList2_SelectedIndexChanged);
         
           }
#endregion
        /**//// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
          //更新部件 
            #region InitializeComponent
            private void InitializeComponent()
        {    
            this.DropDownList1.SelectedIndexChanged += new System.EventHandler(this.DropDownList1_SelectedIndexChanged);
            this.DropDownList2.SelectedIndexChanged += new System.EventHandler(this.DropDownList2_SelectedIndexChanged);            this.Load += new System.EventHandler(this.Page_Load);
            this.Button1.Click += new System.EventHandler(this.Button1_Click);
            this.Button2.Click += new System.EventHandler(this.Button2_Click);
        }
        #endregion
     //获取数据集
        #region GetDataSet
            private DataSet GetDataSet(string sql)
        {
            constring=System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
            SqlDataAdapter sda =new SqlDataAdapter(sql,constring);
            DataSet ds=new DataSet();
            sda.Fill(ds);
            return ds;
        }
        #endregion
        
    //数据绑定
        #region DataGrid1_ItemDataBound
        private void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
        {            
            e.Item.Cells[1].Text=Convert.ToString(e.Item.ItemIndex+1);//产生序号
            if(e.Item.ItemType!=ListItemType.Header)
            {
                if(e.Item.ItemIndex%2==0)
                {
                    e.Item.Attributes.Add( "onmouseout","this.style.backgroundColor='PaleGoldenrod'");
                }
                else
                {
                    e.Item.Attributes.Add( "onmouseout","this.style.backgroundColor='LightGoldenrodYellow'");
                }
              e.Item.Attributes.Add( "onmouseover","this.style.backgroundColor='#C1D2EE'");
            }
            switch (e.Item.ItemType)
            {
                case ListItemType.Item:
                case ListItemType.AlternatingItem:
                    e.Item.Attributes.Add("ondblclick","alert('"+e.Item.ItemIndex+"');");                    
                    break;
                case ListItemType.Header:
                    e.Item.Cells[0].ColumnSpan=2;//合并单元格
                    e.Item.Cells[1].Visible=false;
                    break;
                case ListItemType.EditItem:
                    for (int i=4; i < DataGrid1.Columns.Count-2; i++)//只调整被编辑的列
                    {
                      if(e.Item.ItemType==ListItemType.EditItem)
                      {
                           e.Item.Cells[i].Attributes.Add("Width", "70px");
                      }
                    }
                    string sqlprovince="select * from province";
                    DataSet dsprovince=GetDataSet(sqlprovince);
                    //一级
                    if(e.Item.ItemType==ListItemType.EditItem)
                    {
                        DropDownList ddlprovince=(DropDownList)e.Item.FindControl("province333");
                        ddlprovince.DataSource=dsprovince;
                        ddlprovince.DataTextField="province333";
                        ddlprovince.DataValueField="provinceID222";
                        ddlprovince.DataBind();
                        ddlprovince.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,"provinceID222"))).Selected=true;
                        //二级
                        if(e.Item.ItemType==ListItemType.EditItem)
                        {
                            if(ddlprovince.SelectedIndex!=-1)
                            {
                                string sqlcity="select * from city where father111='"+ddlprovince.SelectedValue+"'";
                                DropDownList ddlcity=(DropDownList)e.Item.FindControl("city444");
                                DataSet dscity=GetDataSet(sqlcity);                
                                ddlcity.DataSource=dscity;
                                ddlcity.DataTextField="city444";
                                ddlcity.DataValueField="cityID111";
                                ddlcity.DataBind();
                                ddlcity.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,"cityID111"))).Selected=true;
                                //三级
                                if(e.Item.ItemType==ListItemType.EditItem)
                                {
                                    if(ddlcity.SelectedIndex!=-1)
                                    {
                                        string sqlarea="select * from area where father111='"+ddlcity.SelectedValue+"'";
                                        DropDownList ddlarea=(DropDownList)e.Item.FindControl("area555");
                                        DataSet dsarea=GetDataSet(sqlarea);                
                                        ddlarea.DataSource=dsarea;
                                        ddlarea.DataTextField="area555";
                                        ddlarea.DataValueField="areaID000";
                                        ddlarea.DataBind();
                                        ddlarea.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,"areaID000"))).Selected=true;
                                    }
                                }
                            }
                        }
                    }
                    break;
                default:
                    break;
            }            
        }
        #endregion

解决方案 »

  1.   

    ddlprovince.DataSource=dsprovince;  是这一行
      

  2.   


    DropDownList ddlprovince=(DropDownList)e.Item.FindControl("province333");
    if(ddlprovince!=null)ddlprovince.DataSource=dsprovince;
    单步跟踪
      

  3.   

    5楼大哥,是这里出错了,运行之后是黄色的字ddlprovince.DataSource=dsprovince;提示是:收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 未将对象引用设置到对象的实例。用户代码未处理:NullReferenceExceptionnew...