无法设置属性“可见性”或“显示”

时间:2016-10-13 00:04:56

标签: javascript asp.net

我在datagrid中有一个下拉列表框,我需要隐藏或显示它。我可以得到这个元素。但是我得到一个错误'无法设置未定义或空引用的属性'显示'。当我想隐藏它。我试图使用可见性,它也有相同类型的错误。有人会告诉我该怎么做。感谢

我的控制:

<asp:dropdownList ID="dropID" runat="server" cssclass="selectColor w175 show"/>

我的样式表中的类:

.show   {
display: normal;
}    

.selectColor {

color: #333333; }       


.w175 { width:175px; }

我的javascript函数:

function NeedChange(id) {
 var dropID = document.getElementById(id);
  if (dropID!=undefined ){
    //dropID.style.visibility="hidden";
    dropID.style.display='none';
}
 }

2 个答案:

答案 0 :(得分:0)

这应该有效

function NeedChange(id) {
var dropID = document.getElementById(id);
if (dropID!=undefined ){
//dropID.style.visibility="hidden";
$("#dropID").removeClass("show");
}
}

答案 1 :(得分:0)

您的方法存在的问题是页面上不存在ID dropID,您无法找到它。 asp.net将重复数据的元素(GridView,ListView,Repeater等)中的ID转换成如下所示:ContentPane1_GridView1_DropDownList1_0。 因此,为了显示/隐藏特定的DropDownList,您需要知道行号。你可以得到的其余ID:

<script type="text/javascript">
    var myElement = "<%= GridView1.ClientID %>_dropID_" + rowNumber;
    // becomes ContentPane1_GridView1_dropID_24

    document.getElementById(myElement).style.display = "none";
</script>

棘手的部分是获取行号。这取决于您的网格设计以及您希望隐藏下拉列表的原因和方式;