我在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';
}
}
答案 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>
棘手的部分是获取行号。这取决于您的网格设计以及您希望隐藏下拉列表的原因和方式;