CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

明明创建了dropdownlist控件,为什么提示说:未将对象引用设置到对象的实例,why???

楼主wzg866(海鸥)2006-05-02 10:21:55 在 .NET技术 / ASP.NET 提问

protected   void   GridView1_SelectedIndexChanged(object   sender,   EventArgs   e)  
          {  
                  Table   mytb   =   new   Table();  
                  mytb.Width   =   1000;  
                  mytb.BorderWidth   =1;  
                  string   TYPE_ID   =   GridView1.SelectedValue.ToString();//课程类型(一级目录的id)  
                  string[]   strID=new   string[5];//存放2级分类的id  
                  string[]   strTITLE=new   string[5];//存放2级分类的title  
                  string[]   strk   =   new   string[200];//  
                  Int16   k=0;//统计dropdownlist的个数  
                  Int16   i   =   0;//二级目录的个数,循环变量  
                  SqlConnection   con   =   new   SqlConnection("Data   Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\PJS.mdf;Integrated   Security=True;User   Instance=True");//建立数据库连接con  
                  SqlCommand   com1   =   new   SqlCommand("SELECT   COUNT(*)   FROM   PJ_STAND   WHERE   parents=@ID1",   con);  
                  com1.Parameters.Add("@ID1",   TYPE_ID);  
                  con.Open();//打开连接  
                  Int16   count2   =   0;//定义二级分类的个数(即评教体系的个数)  
                  count2   =Convert.ToInt16(com1.ExecuteScalar());  
                  SqlCommand   com2   =   new   SqlCommand("SELECT   DISTINCT   TITLE,ID   FROM   PJ_STAND   WHERE   PARENTS=@ID1",   con);  
                  com2.Parameters.Add("@ID1",   TYPE_ID);  
                  SqlDataReader   DR   =   com2.ExecuteReader();  
                  try  
                  {  
                          while(DR.Read())  
                          {  
                                  strID[i]   =   DR["ID"].ToString();//把二级分类的ID存入strID[]数组  
                                  strTITLE[i]   =   DR["TITLE"].ToString();//把二级分类的TITLE存入数组strTITLE[]  
                                  i++;  
                          }  
                  }  
                  finally  
                  {  
                          DR.Close();  
                  }  
                  for   (;   i   >   0;   i--)   {  
                          string[]   gs   =   new   string[20];  
                          TableRow   tr   =   new   TableRow();//增加一行  
                          TableCell   tc   =   new   TableCell();  
                          tc.Text   =   strTITLE[i-1];//二级目录的title    
                          tc.BorderWidth   =1;  
                          tr.Cells.Add(tc);  
                          mytb.Rows.Add(tr);  
                          SqlCommand   comcount   =   new   SqlCommand("SELECT   COUNT(*)   FROM   PJ_STAND   WHERE   PARENTS=@IDCOUNT",   con);  
                          comcount.Parameters.Add("@IDCOUNT",   strID[i   -   1]);  
                          Int16   count3   =   Convert.ToInt16(comcount.ExecuteScalar());//取出二级目录下三级目录的个数存入count3变量  
                          tc.RowSpan   =   (count3   +   1);//设置二级目录的跨行数目  
                          SqlCommand   com3   =   new   SqlCommand("SELECT   DISTINCT   TITLE,ID     FROM   PJ_STAND   WHERE   PARENTS=@ID1",   con);  
                          comcount.Parameters.Clear();//清除comcount的参数  
                        com3.Parameters.Add("@ID1",strID[i-1]);//二级目录的id  
                        SqlDataReader   mydr   =   com3.ExecuteReader();  
                        while   (mydr.Read())   {  
      ///////////////////////////////////////////////////////////////增加一个标题行存放三级目录  
                                TableRow   trr   =   new   TableRow();  
                                TableCell   tcr   =   new   TableCell();  
                                tcr.Text   =   mydr["title"].ToString();  
                                tcr.BorderWidth   =   1;  
                                trr.Cells.Add(tcr);  
                                mytb.Rows.Add(trr);              
      ////////////////////////////////////////////////增加一个空格里面放置dropdownlist  
                                TableCell   tcd   =   new   TableCell();  
                                tcd.BorderWidth   =   1;  
                                trr.Cells.Add(tcd);  
                                string   str   =   "";  
                                if   (tcr.Text!=   str)//如果三级标题不为空的话执行加载dropdownlist  
                                {  
                                        DropDownList   ddl   =   new   DropDownList();  
                                        Session[k.ToString()]   =   mydr["ID"].ToString();//把三级目录的id出入SESSION里面  
                                        ddl.ID   =   Session[k.ToString()].ToString();//对应的ddl的id号码为三级目录的id  
                                        k++;  
                                        Label1.Text   +=   "id为:"   +ddl.ID.ToString();//输出对应的ddl的id;  
                                        //Label1.Text   +=   Session[k.ToString()].ToString();  
                                        ddl.Items.Add(new   ListItem("1"));  
                                        ddl.Items.Add(new   ListItem("2"));  
                                        ddl.Items.Add(new   ListItem("3"));  
                                        ddl.Items.Add(new   ListItem("4"));  
                                        ddl.Items.Add(new   ListItem("5"));  
                                        ddl.Items.Add(new   ListItem("6"));  
                                        ddl.Items.Add(new   ListItem("7"));  
                                        ddl.Items.Add(new   ListItem("8"));  
                                        ddl.Items.Add(new   ListItem("9"));  
                                        ddl.Items.Add(new   ListItem("10"));  
                                        tcd.Controls.Add(ddl   );//加载ddl  
                                }  
                               
     
                        }  
                        mydr.Close();  
                        PlaceHolder1.Controls.Add(mytb);//加载table     mytb;  
                }  
                con.Close();//关闭连接  
                Session["count"]   =   k;//ddl的个数  
                Label1.Text   +=   "一共有"   +   Session["count"]   +   "个记录";  
                 
                  }  
   
    ///   <summary>  
    ///   //////////////////////////////////////////////////////////////  
    ///   </summary>  
    ///   <param   name="sender"></param>  
    ///   <param   name="e"></param>  
     
          protected   void   Button1_Click(object   sender,   EventArgs   e)  
          {        
                  Int16   i   =   0;//循环变量  
                  string   type_id   =   GridView1.SelectedValue.ToString();  
                  //string   stu_id   =   Session["studentID"].ToString();  
                  string   tea_id   =   GridView1.SelectedRow.Cells[1].ToString();  
                  DateTime   time   =   DateTime.Today;  
                  Label1.Text   =   "";  
                  Response.Write("一级目录id"+type_id);  
                  for   (;   i   <Convert.ToInt16(Session["count"]);   i++)   {  
                           
                          Label1.Text   +=   "所选的id为:"+Session[i.ToString()];  
                          string   id   =   Session[i].ToString();  
                          DropDownList   d=PlaceHolder1.FindControl(id)   as   DropDownList;  
                          Response.Write("呵呵"+id);  
                          Response.Write(d.SelectedItem.ToString());  
   
                          if   (d   !=   null)  
                          {  
                                  Response.Write("true");  
                          }  
                          else   {  
   
                                  Response.Write("false");  
                          }  
                  }  
                 
          }  
  明明创建了dropdownlist控件,为什么提示说:未将对象引用设置到对象的实例,why??? 问题点数:20、回复次数:4Top

1 楼ice_frank(回归......)回复于 2006-05-02 10:28:19 得分 0

每次页面刷新的时候都要重新生成Top

2 楼xcz1943(小钊)回复于 2006-05-02 10:29:35 得分 0

代码太多,没有看完。hoho  
  参照  
  http://xucanzhao.cnblogs.com/archive/2006/04/29/388514.html  
  http://xucanzhao.cnblogs.com/archive/2006/04/29/388517.html  
  hope   useful!Top

3 楼aspdotnet2005(天中之子、为中原喝采![我想找兼职MSN:Red-Maple@hotmail.com])回复于 2006-05-02 10:40:16 得分 0

while   (mydr.Read())   {  
  ......  
  PlaceHolder1.Controls.Add(mytb);//加载table     mytb;  
  }  
  如果没有记录的情况下程序还能添加   DropDownList吗?  
   
  而这个  
  protected   void   Button1_Click(object   sender,   EventArgs   e){}  
  是不管你添加不添加它都要找,假设在没有记录的情况下,这个事件肯定要出除的,C#是类型安全的,你应该查找的时候判断下Top

4 楼tomtown530(梦想一定会实现!)回复于 2006-05-02 11:37:11 得分 0

检查aspx页中的控件是不是添加了runat="server"属性。Top

相关问题

关键词

得分解答快速导航

  • 帖主:wzg866

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo