将DataList ItemIndex传递给javascript函数

时间:2019-07-08 08:34:34

标签: javascript asp.net data-binding eval

我正在用asp.net创建一个网站,但是数据绑定存在问题。我正在使用DataLists和somethimes,我需要将数据发送到javascript函数。 这是我的HTML:

<asp:DataList ID="DataList1" runat="server" DataKeyField="Id" DataSourceID="DS">
    <ItemTemplate>
        <asp:Label ID="Label1" runat="server" Text='<%# Container.ItemIndex+1%>' />
        <asp:ImageButton ID="Img1" runat="server" ImageUrl='<%# "~/Pictures/" + Eval("BookId") + ".jpg" %>' PostBackUrl='<%# "~/Public/Book.aspx?bdi=" + Eval("BookId") %>' />
        <asp:Label ID="TitleLabel" runat="server" Text='<%# Eval("Title") %>' />
        <asp:Label ID="SellPriceLabel" runat="server" Text='<%# (int)Eval("SellPrice")*(int)Eval("Count") %>' />
        <asp:TextBox ID="CountLabel" runat="server" Text='<%# Eval("Count") %>' onchange="itemcounterchange('<%= Container.ItemIndex%>')"   />
        <asp:Button ID="Delete" runat="server" Text="delete" OnClientClick="changebasket(0);return false" />
    </ItemTemplate>
</asp:DataList>

我几乎尝试了Internet上的所有内容。这些是人们接受的正确答案的解决方案:

1。

onchange="itemcounterchange('<%= Container.ItemIndex%>')"

结果:

 onchange=""itemcounterchange("<%# Container.ItemIndex%>")""

2。

onchange='<%# "itemcounterchange(" + Container.ItemIndex + ")" %>' 

完全不渲染onchange

3。

onchange = '<%# String.Format("itemcounterchange({0});", Container.ItemIndex)>'

结果:

onchange="<%# String.Format("itemcounterchange({0});", Container.ItemIndex)>"

4。

onchange='<%# "javascript:itemcounterchange(" + Container.ItemIndex + ")" %>'

这也不会呈现。

还有其他想法吗?或任何其他解决方案?我需要将数据绑定到我的javascript函数很多次,我真的没有希望。

0 个答案:

没有答案