时间:2011-05-05 10:52:26

标签: asp.net repeater

我在ASPX页面的Repeater控件中输出几行Javascript。我想在脚本标记中使用我的DataSource中的值。

一个非常基本的例子可能是:

<asp:Repeater ID="RepeaterBlah" runat="server">
 <ItemTemplate>
   Hello <%# DataBinder.Eval(Container.DataItem, "SomeName")%>
   <script>myfunction(<%# DataBinder.Eval(Container.DataItem, "SomeNumber")%>)</script>
 </ItemTemplate>
</asp:Repeater>

我知道大多数人都不会重复这样的脚本标记,但我使用的是第三方代码的一小段代码,您可以将其放在页面的任何位置来创建Flash对象。您传递一个数字,以便它知道要显示的图像库。在一个页面上使用多个没有问题。

首先,这很好用,虽然我注意到Visual Web Developer中的颜色表明它并不真正喜欢在<%#标记内使用的<script>。 Intellisense在代码隐藏方面也有点疯狂!

那么将数据集项目传递到脚本标记的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

这可能呢? (不能完全记住+符号实际上应该是&amp; sign)

<%# "<script>myfunction(" + DataBinder.Eval(Container.DataItem, "SomeNumber") + ")</script>" %>

答案 1 :(得分:1)

另一种替代语法如下:

<%# Eval("SomeNumber", "<script>myfunction({0});</script>") %>

这使用可选参数,您可以在其中提供格式字符串。