Хорошо, я использовал ретрансляторы буквально сотни раз без проблем, но сегодня что-то пошло наперекосяк. У меня есть ретранслятор, и я подписываюсь на событие itemCommand, но когда моя команда запускается, страница возвращается, но событие не запускается.Ретранслятор ASP.Net Элемент Команда не запускается
Чтобы обойти это, мне нужно выполнить привязку данных при каждой обратной передаче.
Мой повторитель выглядит следующим образом:
<asp:Repeater id="MyRepeater" runat="server" onitemcommand="MyRepeater_ItemCommand">
<ItemTemplate>
<li>
<asp:Label id="Label" runat="server" />
<asp:LinkButton id="LinkButton1" runat="server" commandname="Complete" commandargument='<%# Eval("MyID") %>' text='<%# Eval("Title") %>' />
</li>
</ItemTemplate>
</asp:Repeater>
и мой CodeBehind так:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SetupPage();
}
}
private void SetupPage()
{
// Do other stuff
MyRepeater.DataSource = Repository.GetStuff()
MyRepeater.DataBind();
}
protected void MyRepeater_ItemCommand(object sender, RepeaterCommandEventArgs e)
{
// Do all my stuff here
}
MyRepeater_ItemCommand не вызывался, если я закомментируйте строку, если (IsPostBack!). После того, как это прокомментировано, и ретранслятор получает привязку к каждой обратной почте, он работает нормально. Я сделал это на многих других страницах, но на этом он просто не работает.
Кто-нибудь еще сталкивается с этим поведением или имеет решение?
Покажите нам полный код вашей страницы (разметка и бэкэнд), если это возможно. – Bdiem
Полная разметка не помещается в поле комментариев, но на этой странице нет ничего необычного. Использование мастер-страниц (без ссылки на ViewState на основных страницах) и Content Placeholders, а затем на ретранслятор - очень просто. У кода сзади есть еще один код доступа к базе данных/репозитория, но опять же ничего необычного –
У вас есть вид на гость включен для этой страницы? –