首页新闻找找看学习计划

JavaScript 运行时错误: 缺少对象

0
悬赏园豆:10 [待解决问题]

情景是这样的:

ASP.NET 页面上有个GridView控件,其中有一列是单选框,由于每次加载数据完之后每一行单选框对应的Name都被更改成了不同的值,导致可以多选。

现在我在页面 OnLoad里面加载完数据之后,都重新给每一行单选框重新命名。代码如下:

前端脚本:

    <script language="javascript">
        function SetRadioName() {
            var gv = document.getElementById("MainContent_GridView1"); //获取GridView的客户端ID
            var myradio = gv.getElementsByTagName("input"); //获取GridView的Inputhtml
            for (var i = 0; i < myradio.length; i++) {
                if (myradio[i].type == 'radio')//hidden
                {
                    myradio[i].setAttribute("name", "myradio");
                }
            }
        };
    </script> 

 

Onload调用:

        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            if (!Page.IsPostBack)
            {
                LoadData();
                ScriptManager.RegisterStartupScript(this, this.GetType(), Guid.NewGuid().ToString(),
                    "SetRadioName()", true); 
            }
        }

以上代码当走完脚本之后,走下一步就报错了:JavaScript 运行时错误: 缺少对象

 跳过这个错误提示之后,页面也能正常加载。 可是每次都会弹出这个错误。有没有哪位大哥知道原因呢??

Hi_Randy的主页 Hi_Randy | 初学一级 | 园豆:192
提问于:2015-08-17 10:34
< >
分享
所有回答(3)
0
MainContent_GridView1

这个是你的gridview的 ID属性名么?

如果是你自己定义的名字 在asp.net中用JS 去取的话应该不是这个id名字 

你应该把 页面运行起来 然后查看网页源代码 看看这个ID到底是什么?


天真浪浪 | 园豆:950 (小虾三级) | 2015-08-17 11:15

你好,感谢您的关注!

我页面定义的名字是 GridView1,实际运行起来名字是 MainContent_GridView1。 这里没问题。以上的脚步运行本身没问题,运行完之后就报出这个错了..无语。

支持(0) 反对(0) Hi_Randy | 园豆:192 (初学一级) | 2015-08-17 11:52
0

window.onload=function(){
 var gv = document.getElementById("MainContent_GridView1"); //获取GridView的客户端ID
            var myradio = gv.getElementsByTagName("input"); //获取GridView的Inputhtml
            for (var i = 0; i < myradio.length; i++) {
                if (myradio[i].type == 'radio')//hidden
                {
                    myradio[i].setAttribute("name", "myradio");
                }
            }
}

//先这样,改一手,或者把js放在页脚。不行的话。就用谷歌打开,F12 sources 调试一手看看,看看是哪里的问题。

贫民窟大侠 | 园豆:4270 (老鸟四级) | 2015-08-17 12:43
0

获取ID可以用ClientID。

var gv = document.getElementById("<%=GridView1.ClientID%>");

脚本报错,如果你确认自己写的没错,也许是浏览器兼容问题,建议换多换其他浏览器试试。

老牛伏枥 | 园豆:143 (初学一级) | 2015-08-18 06:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册