Это сводит меня с ума уже 2 дня - надеюсь, кто-то уже видел это раньше.
У меня есть проблема, когда первый щелчок элемента управления в представлении повторителя или сетки не запускает событие ItemCommand, все последующие клики работают.Элементы управления загружаются в заполнитель на Base.aspx следующим образом:
private void LoadUserControl()
{
string controlPath = LastLoadedControl;
if (!string.IsNullOrEmpty(controlPath))
{
ph.Controls.Clear();
UserControl uc = (UserControl)LoadControl(controlPath);
ph.Controls.Add(uc);
}
}
Мне интересно, является ли это проблемой состояния представления, и в каких событиях страницы я должен использовать DataBind ().Я экспериментировал с привязкой данных в различных событиях страницы, предоставляя возможность просмотра состояния на странице и управления без изменения результата.
вот шаблон GridView, но у меня также есть такое же поведение с элементом управления повторителем, поэтому я не верю, что это элемент управления, который является этой проблемой.
<ItemTemplate>
<asp:RadioButton ID="rbEnable" GroupName="MyGroup" runat="server" Text="Enabled" Checked="<%# ((EducateMe.BaseTypes.AbstractLink)Container.DataItem).IsActive == true %>" />
<asp:RadioButton ID="rbDisable" runat="server" GroupName="MyGroup" Text="Disabled" Checked="<%# ((EducateMe.BaseTypes.AbstractLink)Container.DataItem).IsActive != true %>" />
<asp:Button ID="btnEnable" runat="server" CommandArgument="<% # Container.DataItemIndex %>" CommandName="Enable" ToolTip="Enable" Text="Save" />
<asp:Button ID="btnDisable" runat="server" CommandArgument="<% # Container.DataItemIndex %>" Visible="false" CommandName="Disable" ToolTip="Disable" Text="Disable" />
</ItemTemplate>
Некоторая дополнительная информация, которая можетбыть актуальным:
То, что я заметил, - это событие Page_Load пользовательского элемента управления, где я перепривязываю элемент управления.Вероятно, это и есть причина того, что состояние элемента управления переписывается, но если я добавлю if (! IsPostback) в эту область в ascx, эта секция кода вообще не сработает, как на странице aspx.Я думаю, это будет правильный раздел для повторного связывания элемента управления.