После обратной передачи ваше дерево управления должно быть построено так, чтобы оно совпадало с деревом, в противном случае событие не сработает, если не может найти кнопку в дереве управления.Это, вероятно, то, что происходит, так как вы вручную добавляете кнопку в коде позади.Есть ли какая-то особая причина, по которой вы не можете использовать его в шаблоне, например ::1001*
<asp:Repeater runat="server">
<ItemTemplate>
<asp:Button runat="server" OnClick="btn_Click" Text="Update" Visible="false" />
</ItemTemplate>
</asp:Repeater>
Тогда ViewState справится с этим за вас.перечитав свой вопрос :) возможно, вы можете просто изменить видимость кнопки на ItemCommand вместо того, чтобы добавить ее, потому что тогда она будет в вашем дереве управления (т.е. если вы добавите ее в шаблон).И / или если у вас есть только «одна» кнопка (((Repeater)source).Items[**0**].Controls.Add(btn);
), почему бы не установить ее вне повторителя?