我用asp.net(C#)做的在线考试系统,但是就是取不到考生的答案?抽提的源码是:
              Label lit_testContent = new Label();
             RadioButtonList rbtnList = new RadioButtonList();            rbtnList.ID = "rbtnList" + number.ToString();
            lit_testContent.Text =  number.ToString () + "、" + conn.dr["itemname"].ToString() ;
            rbtnList.Items .Add("A. " + conn.dr["optiona"].ToString());
            rbtnList.Items .Add("B. " + conn.dr["optionb"].ToString());
            rbtnList.Items .Add("C. " + conn.dr["optionc"].ToString());
            rbtnList.Items .Add("D. " + conn.dr["optiond"].ToString());            rbtnList.Items[0].Value = "A";
            rbtnList.Items[1].Value = "B";
            rbtnList.Items[2].Value = "C";
            rbtnList.Items[3].Value = "D";
                       
            Panel1.Controls.Add(lit_testContent);
            Panel1.Controls.Add(rbtnList);
这段代码能抽到提!下面是取考生答案的源码:
string ans = "";
        
        for (int i = 2; i <= 10; i++)
        {
            RadioButtonList list ;            list = (RadioButtonList)Panel1.FindControl("rbtnList" + i.ToString());             if (list != null)
             {
                ans = list.SelectedValue.ToString();                ht_stuAnswer.Add(i.ToString(), ans);                this.Label1.Text = ans;
               
            else
             {
                ans += i.ToString() + "null";
            } 
 
        }但是这段代码不能取到值,不加 if (list != null)的话提示    ”未将对象引用设置到对象的实例“
也就是list 总是null.各位大哥大姐,怎么办?很急的!真诚期待中。。

解决方案 »

  1.   

    list = (RadioButtonList)Panel1.FindControl("rbtnList" + i.ToString()); 
    没有找到控件。
      

  2.   

    没看出原因,可能是控件转换没成功!这样吧,楼主,你在页面上放一标签来显示下:(RadioButtonList)Panel1.FindControl("rbtnList" + i.ToString()).ToString(); 
    看看它是不是取到了"你要的控件",如果取到了,再看它的类型是不是能够正常转化为(RadioButtonList)
    .NET交流群:11425434
      

  3.   

    不知道是什么原因,程序没动就又好了!
    还有一个问题就是: 怎么做倒计时啊??比如说考试30分钟。倒计时到0分0秒时自动交卷!还有网页过期时间,Sesson 怎么设??
      

  4.   

    自动交卷,你可以用Ajax技术实现(自己去学下)Sesson过期问题,这个是很热门的问题,你在论坛上多逛逛,或者在提问时,打入Sesson字样,就可以看到一堆相关的提问帖子,你自己找下,这样就不用出分来另外问了
      

  5.   

    更正一下自动交卷你可以在VS里安装支持ajax开发的官方框架后,会在工具箱里有个Timer控件,在这个控件的Tick事件里完成交卷功能,至于什么时候交,你自己设置Timer控件的相应属性,完成交卷后,把控件设置为不可用就行了