События для гиперссылки не запускаются внутри usercontrol, который находится внутри Raddock
У меня есть RadStrip на моей странице. Внутри RadStrip я размещаю Raddocks, в котором заполнена страница UserControl.
Теперь на моей странице UserControl ascx у меня есть гиперссылка.
Пока я нажимаю на эту гиперссылку, она не попадает в события на странице UserControl ascx. вместо этого я получаю репост на той же странице
Главная страница
RadDock dock6 = CreateRadDock();
dock6.Title = "Last Viewed Claims";
_userControl = LoadControl("~/pages/UserControl.ascx");
dock6.ContentContainer.Controls.Add(_userControl);
RadDockZone dz6 = (RadDockZone) RadDockZone1;
RadDockLayout1.Controls.Add(dock6);
dock6.Dock(dz6);
UserControl.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="UserControl.ascx.cs"
EnableViewState="true" Inherits="UserControl" %>
<table border="0" width="100%">
<tr>
<td>
<asp:ListView ID="lvmydata" runat="server" >
<ItemTemplate >
<tr>
<td>
<asp:LinkButton ID="label1" runat="server" Text='<%# Eval("ID")%>'
OnClick="linkClick">
</asp:LinkButton>
</td>
</tr>
</ItemTemplate>
</asp:ListView>
</td>
</tr>
</table>
UserControl.ascx.cs
public IList MyData
{
set
{
_myData = value;
lvmyData.DataSource = _myData;
lvmyData.DataBind();
}
}
get { return _lastViewedClaimsList; }
}
protected void linkClick(object sender, EventArgs e)
{
LinkButton btn = (LinkButton) sender;
btn.CommandArgument = btn.Text;
}
1 ответ
Решение
Добавьте идентификаторы в создаваемые вами элементы управления и убедитесь, что вы воссоздаете их правильно при каждой обратной передаче, предпочтительно в событии Page_Init.
_userControl = LoadControl("~/pages/UserControl.ascx");
_userControl.ID = "theUserControlID";//that should not change across postbacks
dock6.ContentContainer.Controls.Add(_userControl);
//make sure the dock also has an ID that does not change