Я не думаю, что вы можете привязать идентификатор DataBind, так что я бы, вероятно, либо использовал скрытое поле, чтобы JQuery подсчитывал их, либо использовал CssClass. Вы можете использовать Container.DataItemIndex
, чтобы получить свой номер.
Edit: просто изменив ul
на runat = "server", ASP.NET сгенерирует для вас уникальный идентификатор в своем печально известном формате INamingContainer. Это также будет включать в себя индекс, хотя это будет что-то вроде lv_ctrl0_group
, и это деталь реализации.
Вы можете подключить обработчик к событию Init ul
и добавить к нему число, сделав его похожим на lv_ctrl0_group1
. Я не думаю, что вы можете легко избавиться от предварительно созданного содержимого INamingContainer, и это, вероятно, сломает любые элементы управления IPostDataHandler.
<script runat="server">
void Group_Init(object sender, EventArgs e) {
((Control)sender).ID += groupId++.ToString();
}
int groupId = 0;
</script>
<asp:ListView id="lv" runat="server" GroupItemCount="3">
<LayoutTemplate>
<asp:PlaceHolder ID="groupPlaceHolder" runat="server" />
</LayoutTemplate>
<GroupTemplate>
<ul id="group" runat="server" oninit="Group_Init">
<asp:PlaceHolder ID="itemPlaceHolder" runat="server"/>
</ul>
</GroupTemplate>
<ItemTemplate>
<li>Item</li>
</ItemTemplate>
</asp:ListView>