2016-10-13 10 views
1

データグリッドにドロップダウンリストボックスがあり、非表示にする必要があります。私は要素を得ることができます。しかし、私は、 '未定義またはnull参照のプロパティ' display 'を設定できません。私はそれを隠したいとき。私は可視性を使用しようとしましたが、同じタイプのエラーもあります。誰かが私にそれをする方法を教えてくれますか?おかげプロパティ 'visibility'または 'display'を設定できません

私のコントロール:私のスタイルシート内

<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'; 
} 
} 
+1

*ノーマル*は何ですか? https://developer.mozilla.org/en-US/docs/Web/CSS/display – epascarello

+1

よくNeedChangeと呼んでいますか? – epascarello

+0

これらのことをテストするのにconsole.logを使用していますか? dropIDを宣言したら、console.logをスローして何かを返すかどうかを確認します。 また、条件を 'if(dropID)'にリファクタリングすることもできます。nullまたは未定義の場合はfalseになります。 –

答えて

0

これは

function NeedChange(id) { 
var dropID = document.getElementById(id); 
if (dropID!=undefined){ 
//dropID.style.visibility="hidden"; 
$("#dropID").removeClass("show"); 
} 
} 
を動作するはずです
+0

"JavaScriptランタイムエラー:オブジェクトがプロパティまたはメソッド 'removeClass'をサポートしていません – user819774

+0

@ user819774:変更を加えました –

+0

そしてこの関数の前にjqueryが追加されていることを確認してください –

0

あなたのアプローチの問題は、ID dropIDがページに存在しないことです、あなたはそれを見つけることができません。 asp.netは、IDをデータを繰り返す要素(GridView、ListView、Repeaterなど)に置き換えます。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> 

トリッキーな部分が行番号を取得しています。それはあなたのグリッドデザインとドロップダウンを非表示にする理由と方法に依存します。

関連する問題