none
gridview中的radiobutton实现单选的代码在ie8中不管用了 RRS feed

  • 问题

  • javascript的代码为:
             var last = null;//最后访问的RadioButton的ID
             function GetValue(sValue)
        { 
          document.getElementById('<%=HidValue.ClientID%>').value=sValue;
          document.getElementById('<%=btnSftm.ClientID%>').disabled=false;
          }
    function judge(obj)
             {
                 if(last == null)
                 {
                      last = obj.id;
                     // alert(last);
                 }
                 else
                 {
                     var lo = document.getElementById(last);
                     lo.checked = "";
                     //alert(lo + "  " + lo.checked);
                     last = obj.name;
                    // alert(last);
                 }
                 obj.checked = "checked";
            } 
    cs中的代码为   
     protected void gvSftm_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                RadioButton rb = (RadioButton)e.Row.FindControl("rbtSftm");
                rb.Attributes.Add("onclick", "judge(this);GetValue(this.value);");   //给RadioButton添加onclick属性
             
            }

        }
    运行时第一个单选完选第二个管用,再选第三个不管用了,最后把所有的都选上了,报对象为null错误,调试停在 lo.checked=""这一行,报对象为null错误,因项目需要,急着解决这个问题,多谢各位坛主的帮忙


    dyx9010
    2009年6月7日 5:37

答案

全部回复

  • 你好,改为这样试试
    function judge(obj)
             {
                 if(last == null)
                 {
                      last = obj;
                 }
                 last.checked = "";
                 obj.checked = "checked";
                 last = obj;
            } 

    知识改变命运,奋斗成就人生!
    2009年6月7日 5:46
    版主
  •  last = obj.id;
    。。。。。
                              last = obj.name;
    你究竟是使用name属性还是id属性啊,2者是不同的。
    【孟子E章】
    2009年6月7日 6:29
    版主
  • function judge 是没有问题,你先试着去把  rb.Attributes.Add("onclick", "judge(this);GetValue(this.value);");  
    里的 GetValue(this.value); 先去掉试试看,再者你的ie8是正式版的吗?我看到过我同事装了测试版时出现过像你这样的问题,后来系统重装后,装了ie8正式版就不会了
    2009年6月7日 12:55
  • 按孟老师的一改,就可以了


    dyx9010
    2009年6月8日 14:21