【发布时间】:2015-08-27 16:14:49
【问题描述】:
我有一个使用中继器的 asp.net 项目。
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1">
<HeaderTemplate>
<asp:label ID="lblexp" runat="server" Text="05/11/1981" Visible="false"></asp:label>
</HeaderTemplate>
<ItemTemplate>
<div id="myNest" class="grid">
<div class="imgholder">
<img src="<%# Eval("ImageAlt1")%>" />
</div>
<strong><%# Eval("ItemName")%> <bdo style="color:green;">$<%# Eval("ItemPrice")%></bdo></strong>
<p class="test"><%# Eval("ItemDescription")%></p>
<div style="color:red; font-size:small;"><asp:Label ID="lblExp" Text='<%# Bind("CreateDate") %>' runat="server" /></div>
<div class="meta"><%# Eval("Email")%></div>
</div>
</ItemTemplate>
<FooterTemplate>
<asp:label ID="lblexp" runat="server" Text="05/11/1981" Visible="false"></asp:label>
</FooterTemplate>
和一些 javascript 来缩短 ItemDescription
<script type="text/javascript">
var after = 5;
var html = $(".grid p.test").html();
html = html.substring(0, after) + "<span> ...</span>";
$(".grid p.test").html(html);
</script>
无论出于何种原因,javascript 都无法看到转发器中的项目。我该如何解决这个问题?
错误是 Uncaught TypeError: Cannot read property substring of undefined
【问题讨论】:
-
这个问题让我回想起我的网络表单时代。哈哈。你的脚本标签在哪里?在我看来,它没有找到任何匹配
'.grid p.test'的元素,这让我相信您的脚本在 DOM 完全加载之前正在运行。 -
您确定要删除客户端的多余内容吗?在服务器端执行此操作会更有效,因此您不会发送他们不需要的客户端数据。
标签: javascript c# asp.net substring