Document.GetElementByID为gridview {...}返回undefined [英] Document.GetElementByID returning undefined for gridview {...}

查看:118
本文介绍了Document.GetElementByID为gridview {...}返回undefined的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在处理一个包含母版页的页面。我在页面中有一个gridview,在其中我动态填充单选按钮。单击按钮的单击事件我正在调用其他文件中的javascript函数。



 <   asp:GridView     AutoGenerateColumns   = 错误    AllowSorting   =  false   宽度  =  100%    ID   =  列表    runat  < span class =code-keyword> =  ser ver    AllowPaging   =  false    GridLines   =     ShowHeader   = 错误 > ;  
< >
< asp:TemplateField ItemStyle-Horizo​​ntalAlign = >
< ItemTemplate >
< asp:RadioButton ID = 条件 < span class =code-attribute> 宽度 = 1px runat = server GroupName = SelectCriteria onclick = javascript:ValidateMultipleCheck(this,'CPH_List'); / >
< asp:HiddenField ID = hdn runat = 服务器 =' <% #DataBinder。 Eval(Container.DataItem, Key)%>' / > >

< / ItemTemplate >
< / asp:TemplateField >

< asp:BoundField DataField = ItemStyle-Horizo​​ntalAlign = / >
< /列 >
< < span class =code-leadattribute> / asp:GridView
>





  function  ValidateMultipleCheck(control,gridName){
var controlId = control.id;
var Parent = document .getElementById(gridName);
for (i = 0 ; i< Parent.rows.length; i ++){
var tr = Parent.rows [i];
var td = tr.childNodes [ 0 ]。childNodes [ 0 ];
var item = td.firstChild;
if (item!= null && item.id!= controlId& & item.type == radio){
if (item.checked){
item.checked = false ;
}
}
}
}





当我点击单选按钮时,在javascript函数中,虽然我正确地传递了值,但是var Parent的值显示为{...},后来因为无法获取未定义或空节点的firstchild而终止执行。



请告诉我这里缺少的东西。

解决方案

检查网格视图客户端id use可以写



Response.Write(List.ClientID);

<在aspx页面加载时,lang =text>获取该ID后,
将其传递给'CPH_List'


I am working on a page which has a master page. I have a gridview in the page and inside it I am dynamically populating radio buttons. OnClick event of radio button I am calling a javascript function which is in some other file.

<asp:GridView AutoGenerateColumns="False" AllowSorting="false" Width="100%" ID="List" runat="server" AllowPaging="false" GridLines="None" ShowHeader="False">
<Columns>
<asp:TemplateField ItemStyle-HorizontalAlign="Left">                                         
<ItemTemplate>
<asp:RadioButton ID="Criteria" Width="1px" runat="server" GroupName="SelectCriteria" onclick="javascript:ValidateMultipleCheck(this,'CPH_List');" />
<asp:HiddenField ID="hdn" runat="server" Value='<%# DataBinder.Eval (Container.DataItem, "Key") %>' />>'

</ItemTemplate>
</asp:TemplateField>

<asp:BoundField DataField="Value" ItemStyle-HorizontalAlign="Left" />
</Columns>
</asp:GridView>



function ValidateMultipleCheck(control, gridName) {
    var controlId = control.id;
    var Parent = document.getElementById(gridName);
    for (i = 0; i < Parent.rows.length; i++) {
        var tr = Parent.rows[i];
        var td = tr.childNodes[0].childNodes[0];
        var item = td.firstChild;
        if (item != null && item.id != controlId && item.type == "radio") {
            if (item.checked) {
                item.checked = false;
            }
        }
    }
}



While I click on the radio buttons, in the javascript function, though I am getting the values passed correctly but the var Parent's value is showing as {...} and later terminating the execution as unable to get firstchild for undefined or null node.

Please let me know what I am missing here.

解决方案

To check the grid view Client id use can write


Response.Write(List.ClientID);

on aspx page load , after getting that id,
pass it in place of 'CPH_List'


这篇关于Document.GetElementByID为gridview {...}返回undefined的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆