首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在asp.net的数据列表中跟踪标签的id

问在asp.net的数据列表中跟踪标签的id
EN

Stack Overflow用户
提问于 2015-03-09 16:57:43
回答 2查看 294关注 0票数 0

我正在从数据库加载数据。我希望使用jquery的slideToggle在单击标题时显示内容。

我的datalist是

代码语言:javascript
复制
 <asp:DataList ID="dl_news" runat="server">
   <ItemTemplate>
     <asp:Label ID="ntitle" runat="server" ClientIDMode="Static"  Text='<%#Eval("title")%>'> </asp:Label> </br>
     <asp:Label  ID="ncontent" runat="server" ClientIDMode="Static"   style=" display:none; " Text ='<%#Eval("ncontent")%>'> </asp:Label>
   </ItemTemplate>

  </asp:DataList>

而我的js是

代码语言:javascript
复制
 $("#ntitle").click(function () {
        $("#ncontent").slideToggle("fast");
    });

问题是标题和内容的标签id对于datalist中的每一项都是相同的。正因为如此,只有点击时的第一个项目显示了内容,而其余的项目在点击时根本没有反应。

如何使每个项目都可点击并在clicking.Please帮助中显示相关内容!!

EN

回答 2

Stack Overflow用户

发布于 2015-03-09 17:02:52

你可以像这样使用class,

代码语言:javascript
复制
<ItemTemplate>
     <asp:Label ID="ntitle" class="ntitle" runat="server" ClientIDMode="Static"  Text='<%#Eval("title")%>'> </asp:Label> </br>
     <asp:Label  ID="ncontent" class="ncontent" runat="server" ClientIDMode="Static" style=" display:none; " Text ='<%#Eval("ncontent")%>'> </asp:Label>
</ItemTemplate>

在Jquery try中,

代码语言:javascript
复制
$(".ntitle").click(function () {
    $(".ncontent").hide(); // first hide all
    $(this).next(".ncontent").slideDown("fast"); // slide its content, only
});

​

代码语言:javascript
复制
$(".ntitle").click(function() {
  $(".ncontent").hide(); // first hide all
  $(this).next(".ncontent").slideDown("fast"); // slide its content, only
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <label class="ntitle">First title</label>
  <label class="ncontent" style="display:none">First ncontent</label>
</div>
<div>
  <label class="ntitle">Second title</label>
  <label class="ncontent" style="display:none">Second ncontent</label>
</div>
<div>
  <label class="ntitle">Third title</label>
  <label class="ncontent" style="display:none">Third ncontent</label>
</div>

​

票数 0
EN

Stack Overflow用户

发布于 2015-03-09 17:04:29

您的项目在客户端不具有相同的Id。您可以使用下面的jquery行调用它们:

代码语言:javascript
复制
$('#<%= dl_news.FindControl("ntitle").ClientID %>').click(function () { 
    ...
});

/edit:但是不应该使用静态的ClientIDMode,因为这会生成无效的Html。所有子控件都将具有相同的ID。您应该在子控件上使用ClientIDMode="Predictable"。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28938143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档