Не используйте односимвольные переменные для индексов цикла. Например:
for (int ii = 0 ; ii < someValue ; ii++)
// loop body
Это - простая привычка, но очень полезно, если необходимо использовать стандартный текстовый редактор для ссылок находки на переменную цикла. Конечно, индексируемые циклы обычно не должны быть такими длинными, что необходимо искать ссылки на указатель...
Вы не можете использовать синтаксис <% =%>
внутри свойств в теге с атрибутом runat = "server"
. Я удивлен, что код даже запустится. :)
ОБНОВЛЕНИЕ:
Вы, вероятно, захотите использовать событие ItemDataBound на ретрансляторе, найти кнопку ссылки и установить свойство CommandArgument.
Не очень элегантно, но вот пример VB.NET.
Private Sub Repeater1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles Repeater1.ItemDataBound
Select Case e.Item.ItemType
Case ListItemType.Item, ListItemType.AlternatingItem
Dim b As LinkButton = e.Item.FindControl("btn")
b.CommandArgument = e.Item.ItemIndex
b.DataBind()
End Select
End Sub
Вы не устанавливаете его
Возможно, вы хотите
<%# Container.DataItemIndex %>
или
<%= Container.DataItemIndex %>
:)
Попробуйте
<asp:LinkButton Text="Save IT" OnCommand="SaveIt" CommandArgument="<%# Container.DataItemIndex %>" runat="server" />
У вас отсутствовал знак "#".