c# - 如何在 asp :Repeater 中为标签使用 getElementbyId

标签 c# javascript asp.net html css

我在 asp:Repeater 中有一个 div:

   <ItemTemplate>
          <div id="myDiv" style="display:none" />
   </ItemTemplate>
</asp:Repeater>

<script type="text/javascript">
    window.onload = function() {
          document.getElementById('myDiv').style.display = 'block';
</script>

这很好用,除了我的 div 元素出现在转发器中,这意味着只找到第一个 div。有人可以向我解释如何获取 ItemTemplate 中的所有 div 吗?

最佳答案

同一个id在一个页面中多次使用是无效的。相反,您必须使用其他一些方法来查找您的元素,例如 css 类。 jQuery 使这项任务变得简单。

$(".someClass").show();

但是,您甚至可能不需要这样做。如果您要做的只是更改公共(public)父级下一组元素的某些样式,则只需更改父级的类名即可。考虑以下中继器:

<div id="repeaterParent">
    <asp:Repeater runat="server">
        <ItemTemplate>
            <div class="repeaterItemDiv"></div>
        </ItemTemplate>
    </asp:Repeater>
</div>

像这样设置你的 CSS:

#repeaterParent .repeaterItemDiv
{
    display: none;
}
#repeaterParent.showDivs .repeaterItemDiv
{
    display: block;
}

然后使用这个 JavaScript:

document.getElementById("repeaterParent").className = "showDivs";

或者,这个 jQuery:

$("#repeaterItemParent").addClass("showDivs");

关于c# - 如何在 asp :Repeater 中为标签使用 getElementbyId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6182142/

相关文章:

javascript - 如何使用函数方法更新内部范围的值?

javascript - 表格的CSS打印

javascript - 如何使用 jquery 遍历所有 json 项?

c# - 在新窗口中显示服务器端生成的 HTML

c# - WPF C# 以编程方式添加事件处理程序

c# - 如何在 ReSharper 8 中禁用 “Press tab to replace highlighted range” 消息?

mysql - SQL 查询获取重复记录并将其显示在 Gridview 的一行中

c# - 给自己发500错误信息

C# WPF 单选按钮拆分到不同的页面

c# - 应用程序不加载azure应用程序配置功能标志值,但加载配置值