现在还有一个问题是 值是读取出来了··可是为什么每次读取的时候 都是 同一个答案呢··
答案的内容  ID=1时: 选了A  然后 ID=2时 选了B
检查的时候就会变成   ID1=B ; ID2=B
正确的应该是:ID1=A; ID2=B  (要的这个效果没有实现,向求教···)[C# code]
HttpCookieCollection cookies;
       cookies = Request.Cookies;
       string[] num = new string[5]; 
     
       
       //for (int i = 1; i < num; i++)
       for (int i = 1; i <= num.Length; i++)
       { 
 HttpCookie abc = new HttpCookie("num"+i.ToString ());
           DateTime dt = DateTime.Now;
       TimeSpan ts = new TimeSpan(0, 0, 1, 0, 0); //过期时间为1分钟
       abc.Expires = dt.Add(ts);
 if (RadioButton1.Checked == true) 
{ abc.Values.Add("num" + i.ToString(), "A"); }
           if (RadioButton2.Checked == true) 
{ abc.Values.Add("num" + i.ToString(), "B"); }
           if (RadioButton3.Checked == true)
 { abc.Values.Add("num" + i.ToString(), "C"); }
           if (RadioButton4.Checked == true) 
{ abc.Values.Add("num" + i.ToString(), "D"); }
           if (RadioButton5.Checked == true)
 { abc.Values.Add("num" + i.ToString(), "E"); }
Response.Cookies.Add(abc); HttpCookie ba = Request.Cookies["num" + i.ToString()];
}<br/>
 for (int a = 1; a <= Convert.ToInt32(Label2.Text); a++)
       {
           Response.Write(Request.Cookies["num"+a.ToString()]
}
[/code]

解决方案 »

  1.   

    把RadioButton放到一个组中了吗??
      

  2.   

    for (int i = 1; i <= num.Length; i++) if (RadioButton1.Checked == true) 
    {}假定你在页面中选择的是1 ,那么for循环永远执行的都是
    abc.Values.Add("num" + i.ToString(), "A"); 先把不的逻辑理清。
      

  3.   


    怎么放????  验证: Response.Write(Request.Cookies["num"+a.ToString()] 的时候发现 
     
    {0}num1
    {1}num2
    {2}num3
    .........
    lovely_baby  再给我点 思路······
      

  4.   

     你代码for里面代码有问题. RadioButton5要是选中了. 你的所有数据就变成
    ID1=e; ID2=e了.
      

  5.   


    num.Length是获取最大的数组总数····
    也许 现在的思路 有点乱了 ···大致是要做出 这样的效果···
    radiobutton都是连接数据库的···刷新一下会改变题目。
    选择了以后 数据会记录到COOKIE里···
      

  6.   

     我猜测. 你的是一个问题对应了多个radiobutton? 然后每个问题有个答案?
     你是用什么绑定数据的. 
      

  7.   

    现在 不知道 怎么 将 数据 拆开 
    写成 类似于 string num = new string[5]
    if (RadioButton1---5.Checked == true) 
    num[0]=a----e
    if (RadioButton1---5.Checked == true) 
    num[1]=a----e这样 就可以了··这样成立就能调用  比如说 label1.text=num[0].tostring的值一样····
      

  8.   

    设置radiobutton的选项 设置4个
    然后获取selectvalue 就行了
      

  9.   

    HttpCookie ba = Request.Cookies["num" + i.ToString()];
      

  10.   

     那你就不用 for 循环了. 
     回答一个问题 就保存一次. 不要一次性保存,至于你的num, 你可以用ViewState["num"] 来自增
     不然你这种方式, 最后一次操作会改变前面的保存的数据
      

  11.   

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (ViewState["num"] == null)
                {
                    ViewState["num"] = 1;
                }
                BindData((int)ViewState["num"]);
            }       
        }
        private void BindData(int num)
        {
            //你根据num 获取数据
        }    protected void Button1_Click(object sender, EventArgs e)
        {
            int i = (int)ViewState["num"];
            HttpCookie abc = new HttpCookie("num" + i.ToString());
            DateTime dt = DateTime.Now;
            TimeSpan ts = new TimeSpan(0, 0, 1, 0, 0); //过期时间为1分钟 
            abc.Expires = dt.Add(ts);
            if (RadioButton1.Checked == true)
            { abc.Values.Add("num" + i.ToString(), "A"); }
            if (RadioButton2.Checked == true)
            { abc.Values.Add("num" + i.ToString(), "B"); }
            if (RadioButton3.Checked == true)
            { abc.Values.Add("num" + i.ToString(), "C"); }
            if (RadioButton4.Checked == true)
            { abc.Values.Add("num" + i.ToString(), "D"); }
            if (RadioButton5.Checked == true)
            { abc.Values.Add("num" + i.ToString(), "E"); }
            // 回答完, 跳转下一条问题
            ViewState["num"] = i + 1;
            BindData(i + 1);
        }
    唉, 我的理解是这样的. 你看看
      

  12.   

    我给 NUM=1 什么反映都没有·· ·
    还需要绑定数据库??
    这个做出来以后是不是radiobutton里面内容变了?
      

  13.   


    我给 NUM=1 什么反映都没有·· ·    NUM的值不需要给,有几题点几下button
    还需要绑定数据库??                private void BindData(int num)
                                    {
                                  //你根据num 获取数据
                                        }
                                   看你Radiobutton要显示什么 如果显示的东西在数据库就绑定数据
    这个做出来以后是不是radiobutton里面内容变了?         
                                     根据  BindData 每题显示的内容不一样                    
      

  14.   

    无语, 不一定非要绑定数据啊。 你显示的题目啊。
    eg。
    private void BindData()

     如果num=1;
     显示第一道题,
    如果num=2
    显示第二道题目
    如此而已。
      

  15.   

    不是这样的效果 这个效果 我已经做出来了。显示答案的部分。
    答案选择了以后我们能够显示在gridview中.因为只有1--5个radiobutton
    gridview 显示  每一道题 选择了以后的 答案
      

  16.   

    就是 在 GIRDVIEW 里 显示出来 按了 下一题以后 就 会 显示在 答案里面 ··
      

  17.   

    呼叫 :  tkascor  求助 下 · 
      

  18.   

    那我无语了, 我不理解我给你#19的代码为什么用不上.  适合你这种方式了... 你点下一条问题要刷新的吧.
    反正都要刷新了. 我建议你直接做完一条就存一条数据. 就不用这样一条一条存在cookie了.
     还有, 我觉得 你这种做法很不符合逻辑.
     我觉得 你设计功能有点问题 , 你点哪一年, 对应的那一天的题目就一个清单,对着 题目顺着坐下来, 然后整体保存数据.
      

  19.   

    引用: 我建议你直接做完一条就存一条数据. 就不用这样一条一条存在cookie了.
    因为考虑到 如果 制作的过程中 要修改数据 就没有做一条保存一条了···
    引用:我觉得 你这种做法很不符合逻辑.
    当初设计的时候 思路 跟着 VB走了···所以 东西出来有点怪···引用: 你设计功能有点问题 , 你点哪一年, 对应的那一天的题目就一个清单,对着 题目顺着坐下来, 然后整体保存数据.
    这个 考虑 不知道 题目 一共有多少个 所以 如果我设置了20个题目,但是出题目的时候 出了21个··那不是又出错了么··
    #30那里 有个图  ID 答案 题目做完以后 会有ABCD 显示在答案上面···目前 有方法就是通过控件复制值进去,但是题目越多 控件越多 不能最终解决该问题
      

  20.   

    1.修改数据.你update 一下就行了.覆盖掉原来的答案, 
    2.如果设置20条. 你提取的时候 定死 select TOP 20  字段 from 表,不懂你为什么会出错.
    3.你说控件太多, 我不懂你的意思. 
     ps . 这不是vb的原因, 任何事情, 这种设计方式, 不要怪语言...要从自身考虑原因. 
    这种方式不方便实现, 就考虑另外一种.
      

  21.   

    已解决··不过 方法 超麻烦···COOKIE 获取方式 依旧 无解 散分 散分····