預期的效果是,在頁面加載時,標籤不顯示,但是當用戶單擊複選框時,標籤顯示。這個小代碼示例只是一個示例來說明問題。當標籤的Visible屬性設置爲false時,代碼將始終從javascript返回對象引用異常。如果該行被註釋掉,它將正確執行而不會有對象引用異常,但標籤應該在加載頁面時隱藏。此應用程序確實使用母版頁,這就是爲什麼要將ClientID傳遞給JavaScript切換功能。當通過頁面加載隱藏標籤時,標籤不會顯示
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 />
如何隱藏Page_Load中的該標籤,以免從Internet Explorer中獲取對象引用錯誤?
謝謝...
考慮使用CSS,將有助於您的很多麻煩。 – daniel
另外考慮使用jQuery,我在這裏寫了一個小例子,你試圖做什麼(我想),試圖使其非常清楚:http://jsfiddle.net/Hv2LH/1/ – daniel
jQuery只是爲了這會有點矯枉過正恕我直言 –