Я пытаюсь использовать события onmouseover и onmouseout для таблицы td, созданной на стороне клиента, так что, когда пользователь наводит курсор на ячейку таблицы, панель становится видимой, а когда они мышью, панель становится невидимой,
<table>
<tr>
<td onmouseover="ToggleVisibility('FileHeader', true);" onmouseout="ToggleVisibility('FileHeader', false);">
Some content goes here.
</td>
</tr>
</table>
Onmouseover и onmouseout вызывают следующую функцию javascript, также определенную на стороне клиента.
<script language="javascript" type="text/javascript">
function ToggleVisibility(id, visible) {
var content = document.getElementById(id);
if (content != null) {
if (visible) {
content.style.display = "block";
} else {
content.style.display = "none";
}
}
}
</script>
Идентификатор, который я передаю getElementByID, является идентификаторомдля элемента управления Panel, созданного в коде позади во время Page_Load.Панель добавляется в другую таблицу, которая определена на стороне клиента следующим образом:
<asp:Table ID="HelpTable" runat="server"></asp:Table>
Вот панель, созданная и добавленная в таблицу в следующем коде:
TableRow row = new TableRow();
HelpTable.Rows.Add(row);
TableCell cell = new TableCell();
row.Cells.Add(cell);
Panel pFileHeader = new Panel();
pFileHeader.ID = "FileHeader";
pFileHeader.Style.Add("Display", "none");
cell.Controls.Add(pFileHeader);
(Панель pFileHeader содержит фактическое содержимое (метки с текстом и т. Д.), Которое я упустил для простоты).
Когда эта панель создается на стороне клиента, моя функция ToggleVisibility работает нормально, но когда Panel создается в коде позади, getElementById возвращает значение null.Я довольно новичок в JavaScript, и был бы признателен за любую помощь.Спасибо!