博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理
      该工具可就一些主题对访问者进行询问,页面上所有的字(除了按纽上的),全部由数据库读出,每个问卷的答案多少随便增减,也很方便查阅,后台没有做,因为做后台实在不复杂,如果有朋友下了这个例题,在增加后台代码的时候遇上麻烦,可以加我QQ,我很愿意一起讨论!!

      关键代码如下,如果喜欢的朋友点连接下载全部源文件https://files.cnblogs.com/thcjp/survey.rar

 1//第一步把调查标题和欢迎词查询出来
 2                DataTable dt=db.fill("select name,instruc from survey where id="+sid+"");//把数据从数据库检索到本地表中来
 3                title.Text=dt.Rows[0]["name"].ToString();//将标题文本设置为本地表中的第一列(如果不喜欢这里是0,那你设成1嘛,我不负责哈,CPU会爆炸的),列名字为name的值
 4                cw.Text=dt.Rows[0]["instruc"].ToString();//这是用户第一次进来显示的字
 5                
 6                //第二步有点复杂,各位看官用心看了,前面我们不是放了一个空的panel控件嘛,下面要做的就是把所有的问题给查询出来,并放到所有需要的控件中,然后再把控件给放到panel里面,这也是这个例题的关键所在
 7                DataTable qdt=db.fill("select qid,qlong from question where id="+sid+"");//把问题ID和问题检索出来放在本地内存表QDT中,备用;
 8                for(int i=0;i<qdt.Rows.Count;i++)//进入代码段的外层循环,处理调查的每个问题
 9                {
10                    
11                    LiteralControl html=new LiteralControl();//literalControl是一个非常基础的控件,用与把HTML脚本动态插入到当前页中去
12                    html.Text=qdt.Rows[i]["qlong"].ToString()+"";//把文字交给新控件
13                    Panel1.Controls.Add(html);//将赋值后的控件加入到panel1中去
14                    
15                    DropDownList ddl=new DropDownList();//声明一个 dropdownlist 对象
16                    string qid=qdt.Rows[i]["qid"].ToString();//把当前问题的ID保存在临时变量中
17                    ddl.ID="q"+qid;//给控件加个名字 q 以后,该下拉列表的名字就成了 q1 ,q2这样的了,你有权利不信,出去看下编译后网页的源文件就知道啦
18
19                    DataTable adt=db.fill("select answer from answer where qid="+qid+"");//查询出所有这个问题的答案
20                    //下面就可以进入代码的层循环了,负责处理问题的每个答案
21                    for(int j=0;j<adt.Rows.Count;j++)
22                    {
23                        ListItem li=new ListItem();//实例化一个新的数据项,每个答案就直接交给该实例项就OK了
24                        li.Text=adt.Rows[j]["answer"].ToString();//赋值
25                        ddl.Items.Add(li);//放到dropdownlist控件中去
26                    }

27                    Panel1.Controls.Add(ddl);//把DorpDownList控件加入到Panel里面去
28                    LiteralControl html1=new LiteralControl();//最后当然是加个分隔符咯
29                    html1.Text="<p>";//我想不用说了吧
30                    Panel1.Controls.Add(html1);//我想不用说了吧
31                }