不能从后面的代码访问动态创建的html元素

Can't access Dynamically created html elements from code behind

本文关键字:动态 创建 html 元素 访问 代码 不能      更新时间:2023-09-26

我有一个页面上有一个无序列表。我正在通过javascript填充列表,像这样:

var vidList = document.getElementById("vidList");
var li = document.createElement("li");
li.id = "videoPlayer" + count;
var runat = document.createAttribute("runat");
runat.value = "server";
li.setAttributeNode(runat);
// Here I insert a flash video stream into li
vidlist.appendChild(li);

只要创建元素并将它们呈现到页面上就可以了。问题是稍后访问它们。因为他们是视频流,我想删除他们时,他们不再是有效的流。在我的Visual Basic代码后面,我有以下代码:

For videoNumber As Integer = 1 to numVideos
    Dim li = vidList.FindControl("videoPlayer" & videoNumber.toString())
    // Check if the stream is valid and delete it if it isn't
Next

当我调试对FindControl的调用时返回Nothing。所以我查看了局部变量,发现我的列表有5个元素,它们都是Nothing。我看了这个问题和这个问题,但都不太符合我的需求。列表项作为空值进入后面的代码有什么原因吗?

Request.Form['videoPlayer' + count]

对于动态创建的控件,可以使用Request.Form['clientID']