Передать DataList ItemIndex в функцию JavaScript - PullRequest
0 голосов
/ 08 июля 2019

Я создаю сайт с asp.net, и у меня проблема с привязкой данных.Я использую DataLists и иногда мне нужно отправить данные в функцию 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>

Я попробовал почти все в Интернете.Вот некоторые решения, которые люди принимают как правильный ответ:

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, и я действительно безнадежен.

...