望ましい効果は、ページの読み込み時にラベルが表示されず、ユーザーがチェック ボックスをクリックするとラベルが表示されることです。この小さなコード サンプルは、問題を説明するための単なるサンプルです。ラベルの Visible プロパティが false に設定されている場合、コードは常に JavaScript からオブジェクト参照例外を返します。その行がコメントアウトされている場合、オブジェクト参照の例外なしで正しく実行されますが、ラベルはページの読み込み時に非表示にする必要があります。このアプリケーションはマスター ページを使用するため、ClientID を javascript Toggle 関数に渡します。
protected void Page_Load(object sender, EventArgs e)
{
this.chkSelect.Attributes.Add("onClick", "Toggle('" + this.lblAdd.ClientID + "', '" + this.chkSelect.ClientID + "')");
this.lblAdd.Visible = false;
}
<script type="text/javascript">
function Toggle(lblAdd, chk) {
var ctrlAdd = document.getElementById(lblAdd);
var ctrlChk = document.getElementById(chk);
if (ctrlChk.checked == true) {
ctrlAdd.style.display = 'inline';
}
else {
ctrlAdd.style.display = 'none';
}
}
</script>
<asp:Label ID="lblAdd" runat="server" Text="Add" Font-Size="8pt" ForeColor="Blue"> </asp:Label>
<asp:CheckBox ID="chkSelect" runat="server" Text="Check Box1" /><br />
Internet Explorer からオブジェクト参照エラーが発生しないように、Page_Load でそのラベルを非表示にするにはどうすればよいでしょうか?
ありがとう...