<%@ Page Language="C#" %>
<!DOCTYPE html>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
myTr.Visible = false;
mySpan.Visible = false;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<table runat="server">
<tr id="myTr">
<td>Hello</td>
<td><span id="mySpan">World</span></td>
</tr>
<tr>
<td>Hi</td>
<td>Bye</td>
</tr>
</table>
</form>
</body>
</html>
通知myTr
和mySpan
都沒有RUNAT =服務器,但是編譯器只給出了mySpan.Visible = false
錯誤。爲什麼我可以從服務器端訪問沒有runat = server的HTML元素?
爲什麼不上myTr.Visible = false
編譯器報錯?
這本書沒有說明爲什麼我們可以訪問沒有runat = server的元素,除非我是盲人。你能否公平使用,並在你的答案中包含該部分? – Gqqnbig
@LoveRight在頁136上,字幕:表頭(Th),行(Tr)和細節(Td):它也可以使用服務器端代碼來操縱表格的th,tr和td標籤。清單8.9:使用服務器端代碼處理Th,Tr和Td標記與您的非常相似。基本上,一個包含runat =「server」的表以及只有id屬性(不是runat =「server」)的th,tr和td元素可以從列表頂部的Page_Load事件處理程序中有效訪問。如果您繼續閱讀,您會看到有關服務器控件的解釋以及ASP.NET如何將它們與Html元素進行匹配。 –